5

我正在使用 wikidata api 使用其英文标题获取实体,

wdf = WikibaseDataFetcher.getWikidataDataFetcher();
eid = wdf.getEntityDocumentsByTitle("enwiki", entitle);

早些时候,使用旧版本的 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)

如何解决这个问题?

4

1 回答 1

4

我遇到同样的问题。我尝试使用来自 github 的最新版本并得到相同的异常。我从文档中执行示例,即简单的调用:

Map<String, EntityDocument> results = wbdf.getEntityDocuments("Q80", "P31");

似乎代码不检查给定 cookie 的存在。我添加了验证,重新编译,一切似乎都正常。

转到 ApiConnection.java:543

if (headerCookies != null)
    for (String cookie : headerCookies) {

没有保修 !:-)

于 2015-10-29T12:28:36.693 回答