我正在使用 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)
如何解决这个问题?
最佳答案
我遇到了同样的问题。 我尝试使用来自 github 的最新版本并得到相同的异常。 我从文档中执行示例,即简单调用:
Map<String, EntityDocument> results = wbdf.getEntityDocuments("Q80", "P31");
似乎代码不检查给定 cookie 是否存在。 我添加了验证,重新编译,一切似乎都正常。
转到 ApiConnection.java:543
if (headerCookies != null)
for (String cookie : headerCookies) {
无保修! :-)
关于java - 维基数据 API 总是返回空指针异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33378950/