API поиска изображений Bing (когнитивный) возвращает неработающие ссылки?

Я использую когнитивную службу Azure, точнее "службу поиска изображений Bing". Я отправляю запросы на получение изображений по определенному ключевому слову.

Для этого я делаю HTTP-запросы REST к нужной конечной точке Azure:

'https://api.cognitive.microsoft.com/bing/v7.0/images/search?q=MYKEYWORD '

Он хорошо работает для множества запросов и результатов.

Однако в некоторых изображениях в json-ответе службы поле contentUrl дает мне неработающую ссылку на веб-сайт, на котором размещено изображение (например, 404 или 403 на некоторых других сайтах wordpress).

Поэтому моя программа, которая пыталась загрузить изображение по ссылке «contentUrl», дает сбой (или должна выдавать хотя бы исключение).

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

Следовательно, я не знаю, что делать: '(

Любая помощь / совет?


person John Doe    schedule 31.05.2020    source источник


Ответы (1)


Да, вы правы, в contentUrl могло быть устаревшее удаление кеша.

По умолчанию Bing возвращает кэшированный контент, если он доступен. Чтобы запретить Bing возвращать кэшированный контент, установите для заголовка Pragma значение no-cache (например, Pragma: no-cache).

Вы можете проверить заголовок Pragma в этом документе: Заголовки.

person George Chen    schedule 01.06.2020
comment
Большое спасибо ! Не знал этого HTTP-заголовка. Я думаю, что в документации по API Azure / Bing следует больше настаивать на этом, поскольку ошибки HTTP 404/403 довольно часто встречаются в ссылках результатов. - person John Doe; 01.06.2020
comment
Я заметил, что у меня все еще есть ошибки (404, 500, ..) со ссылками, которые предоставляет bing API, даже если я добавил заголовок Pragma: no-cache. я не знаю что делать: '( - person John Doe; 14.07.2020