首页 > 解决方案 > 必应图像搜索 API(认知)返回损坏的链接?

问题描述

我正在使用 Azure 认知服务,更准确地说是“bing 图像搜索服务”。我发送请求以获取与特定关键字相关的图像。

为此,我向正确的 azure 端点发出 HTTP REST 请求:

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

它适用于很多请求和结果。

但是,在服务的 json 响应中的某些图像中,“contentUrl”字段为我提供了指向托管图像的网站的断开链接(例如,某些不同的 wordpress 网站上的 404 或 403)。

因此,由于“contentUrl”链接而试图下载图像的我的程序崩溃(或者必须至少抛出一个异常)。

我猜这是因为网站发生了变化(通过删除他们托管的图像)并且 bing 没有更新其数据库(或者爬虫没有时间这样做)。

因此我不知道该怎么做:'(

任何帮助/建议?

标签: azuremicrosoft-cognitivebing-apiazure-cognitive-services

解决方案


是的,你是对的,contentUrl 可能是过时的缓存删除。

默认情况下,必应返回缓存的内容(如果可用)。要防止 Bing 返回缓存的内容,请将 Pragma 标头设置为 no-cache(例如,Pragma: no-cache)。

您可以检查Pragma此文档中的标题:Headers


推荐阅读