azure - 必应图像搜索 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 没有更新其数据库(或者爬虫没有时间这样做)。
因此我不知道该怎么做:'(
任何帮助/建议?
解决方案
是的,你是对的,contentUrl 可能是过时的缓存删除。
默认情况下,必应返回缓存的内容(如果可用)。要防止 Bing 返回缓存的内容,请将 Pragma 标头设置为 no-cache(例如,Pragma: no-cache)。
您可以检查Pragma
此文档中的标题:Headers。
推荐阅读
- leaflet - 根据输入的地理编码位置,从数据库显示落在地图边界内的传单标记
- amazon-web-services - 为什么 ssh 通过 -i 标志而不是 -F 标志连接?
- android - android google play billing library v2.0.3 acknowledgePurchase failed with error code 5 in Android Q (api 29)
- android - 通过 Kotlin 中的类共享功能
- mysql - curdate() 的时间?
- c++ - 确定整个测地线球体的纹理坐标
- python - 朴素贝叶斯 partial_fit() 对单个样本使用超过 16 GB 的 RAM
- python - 查找属于列表的元素的概率
- android - 找不到 com.android.tools.build:gradle:3.4.2
- c# - 将 DataTable 内容导出到 CSV 文件