java - 维基数据 API 总是返回空指针异常

标签 java wikidata-api

我正在使用 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/

相关文章:

wikipedia - 如何将Freebase查询转换为Wikidata查询?

wikipedia-api - 如何获取给定维基数据 ID 的语句列表?

wikidata - 在 Wikidata api 中设置查询超时

freebase - 如何获取维基数据上所有电影的列表?

java - 重构移动和提取方法、解析类及其引用的硬编码?

java - 自由标记 : diplay tag on condition without if block

java - Maven:编辑父级的 POM 依赖项(排除或更新其版本)

java - JVM 垃圾收集对象是否被不再使用的局部变量引用?

Java Applet 411 内容长度