我正在使用wikidata api来获取使用其英文标题的实体,
wdf = WikibaseDataFetcher.getWikidataDataFetcher();
eid = wdf.getEntityDocumentsByTitle("enwiki", entitle);
Run Code Online (Sandbox Code Playgroud)
早些时候,使用旧版本的wikidata-api,我能够顺利运行它.更新到5.0.0版后,我总是收到以下错误,
Exception in thread "main" java.lang.NullPointerException
at org.wikidata.wdtk.wikibaseapi.ApiConnection.fillCookies(ApiConnection.java:544)
at org.wikidata.wdtk.wikibaseapi.ApiConnection.sendRequest(ApiConnection.java:346)
at org.wikidata.wdtk.wikibaseapi.WbGetEntitiesAction.wbGetEntities(WbGetEntitiesAction.java:187)
Run Code Online (Sandbox Code Playgroud)
如何解决这个问题?
我遇到同样的问题。我尝试使用 github 上的最新版本并得到相同的异常。我从文档中执行示例,即简单的调用:
Map<String, EntityDocument> results = wbdf.getEntityDocuments("Q80", "P31");
Run Code Online (Sandbox Code Playgroud)
似乎代码不检查给定 cookie 是否存在。我添加了验证,重新编译,一切似乎都正常。
转到 ApiConnection.java:543
if (headerCookies != null)
for (String cookie : headerCookies) {
Run Code Online (Sandbox Code Playgroud)
没有保修 !:-)