Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/187.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何通过API从Wikidata项获取图像URL属性?_Java_Android_Mediawiki Api_Google Image Search_Wikidata Api - Fatal编程技术网

Java 如何通过API从Wikidata项获取图像URL属性?

Java 如何通过API从Wikidata项获取图像URL属性?,java,android,mediawiki-api,google-image-search,wikidata-api,Java,Android,Mediawiki Api,Google Image Search,Wikidata Api,我制作了一个android应用程序,使用JSON谷歌图像搜索API提供图像,但我注意到谷歌已经停止支持它。我还发现Wikidata有时会在某些项目上提供图像属性,但我似乎无法使用Wikidata API获取图像的URL位置 有没有办法从Wikidata中的项目获取图像URL属性?如果某个Wikidata项目(ID为:Qxxx)有属性,您可以通过以下方式访问它: 答复将包括: "claims": { "P18": [{ "mainsnak": { "datavalue": { "v

我制作了一个android应用程序,使用JSON谷歌图像搜索API提供图像,但我注意到谷歌已经停止支持它。我还发现Wikidata有时会在某些项目上提供图像属性,但我似乎无法使用Wikidata API获取图像的URL位置

有没有办法从Wikidata中的项目获取图像URL属性?

如果某个Wikidata项目(ID为:Qxxx)有属性,您可以通过以下方式访问它:

答复将包括:

"claims": {
        "P18": [{ "mainsnak": { "datavalue": { "value": "img_name.ext" }}}]
}
其中,img\u name.ext是您要查找的图像的名称(所有空白都必须替换为

最终图像URL将为:
https://upload.wikimedia.org/wikipedia/commons/a/ab/img_name.ext
,其中abimg\u name.ext的第一个和第二个字符


例如,对于项,API将返回图像名称“”,其md5sum:213b31ec141dafebe457e49bcd7f9329,因此a=2和b=1,或者最终图像URL将是:

您可以从图像属性(
Sample.png
在以下示例中)构建URL:


有关更多详细信息,请参阅Wikimedia Commons。

nice!您也可以直接获得大小调整后的图像url,如下所示:不过,请注意,请求大于原始图像大小的图像将返回一个错误。我花了一段时间才弄明白这一点。正在讨论的哈希和不是P18[0]处的值。mainsnak.hash。您需要使用hashsum(“Junior Jaguar Belize Zoo.jpg”)。作为名称的字符串(将空格替换为“\”。这将为您提供213B31EC141DAFEBE457E49BCD7F9329哈希和,您可以使用它来确定url。
"claims": {
        "P18": [{ "mainsnak": { "datavalue": { "value": "img_name.ext" }}}]
}
https://commons.wikimedia.org/w/index.php?title=Special:Redirect/file/Sample.png&width=300