Проблема: Bing Imagesarch API возвращает URL изображения.Использование ImageIO.read (url) для чтения возвращает исключение нулевого указателя - PullRequest
0 голосов
/ 19 февраля 2019

Я использую API поиска изображений Bing в Netbeans Java 8. Я правильно получил данные JSON, около 263 совпадений.Каждое совпадение имеет свои данные на ключе «value», а каждое изображение хранится в ключе «contentUrl».

Например:

Я получаю contentUrl какa String, затем преобразуйте его, используя URL в качестве следующего примера кода:

String firstMatch = (String) firstMatch.get("contentUrl");
URL url1 = new URL(firstMatch);
Image cakePic = ImageIO.read(url1);
ImageIcon cakeIcon = new ImageIcon(cakePic);

Теперь проблемы:

На моих первых 3 совпадениях изображений или URL "contentUrl" я могу получить толькои покажи первый матч.Второй и третий выдают исключение нулевого указателя следующим образом:

Исключение в потоке "AWT-EventQueue-0" java.lang.NullPointerException

Я напечатал переменные URLна system.out, моего собственного тестирования.Я использовал запрос "вкусные салаты Энн Уилсон" (перевод с испанского).Я вставил эти URL в Firefox, и изображения не показали проблем.

Из этих первых 3 совпадений я могу загрузить только первое совпадение.2-й и 3-й бросок исключения нулевого указателя.Я пробовал каждый матч в одиночку и все еще получал исключение нулевого указателя.

http://globedia.com/imagenes/noticias/2011/12/17/deliciosas-ensaladas-anne-wilson_1_1014200.jpg

http://librosgratisxd.com/wp-content/uploads/2017/07/deliciosas-ensaladas-de-anne-wilson2.jpg

http://librosgratisxd.com/wp-content/uploads/2017/08/deliciosas-recetas-de-carne-picada-de-anne-wilson-150x150.jpg

Я подозреваю, чтоВ ImageIO.read (URL) отсутствует то, что нужно серверу.Может быть, useragent?реферер?Я попробовал другой из 263 матчей, а некоторые работают, а другие нет.Пожалуйста, помогите!

РЕДАКТИРОВАТЬ: добавил второе изображение соответствует JSON данных.Это выдает исключение нулевого указателя.

"webSearchUrl":"https:\/\/www.bing.com\/images\/search?view=detailv2&FORM=OIIRPO&q=Deliciosas+ensaladas+-+Anne+Wilson.pdf&id=3BFE78A6DEFEEF3854FED2B49A902EC885D1037C&simid=607995057971464317",
     "name":"Deliciosas ensaladas ( Anne Wilson)",
     "thumbnailUrl":"https:\/\/tse3.mm.bing.net\/th?id=OIP.cB5jsoePgzfSdxEf8kDIUQDJEs&pid=Api",
     "datePublished":"2012-01-08T05:52:00.0000000Z",
     "isFamilyFriendly":true,
     "contentUrl":"http:\/\/globedia.com\/imagenes\/noticias\/2011\/12\/17\/deliciosas-ensaladas-anne-wilson_1_1014200.jpg",
     "hostPageUrl":"http:\/\/globedia.com\/deliciosas-ensaladas-anne-wilson",
     "contentSize":"114736 B",
     "encodingFormat":"jpeg",
     "hostPageDisplayUrl":"globedia.com\/deliciosas-ensaladas-anne-wilson",
     "width":344,
     "height":512,
     "hostPageFavIconUrl":"https:\/\/www.bing.com\/th?id=AR_6305881f91324e69f0fc25409f3f15c0&pid=Api",
     "thumbnail":{
        "width":204,
        "height":304
     },
     "imageInsightsToken":"ccid_cB5jsoeP*mid_3BFE78A6DEFEEF3854FED2B49A902EC885D1037C*simid_607995057971464317*thid_OIP.cB5jsoePgzfSdxEf8kDIUQDJEs",
     "insightsMetadata":{
        "pagesIncludingCount":6,
        "availableSizesCount":4
     },
     "imageId":"3BFE78A6DEFEEF3854FED2B49A902EC885D1037C",
     "accentColor":"A33E28"
  }

РЕДАКТИРОВАТЬ 2: Я попытался использовать библиотеку ввода-вывода apache commons и использовал

FileUtils.copyURLToFile (url, file);

Написанный файл был html-файлом с таким содержанием:

<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>301 Moved Permanently</title>
</head><body>
<h1>Moved Permanently</h1>
<p>The document has moved <a href="https://librosgratisxd.com/wp-content/uploads/2017/07/deliciosas-ensaladas-de-anne-wilson2.jpg">here</a>.</p>
</body></html>

По сути, это тот же URL, но с «https» на передней панели.Блин.

...