问题经过
在本机(windows)与开发机器(linux)在使用微软 Bing Search Api 搜索时,参数一致的情况下,返回的结果却不一致。
最开始以为是 query 的编码问题
- 本机apifox请求 https://api.bing.microsoft.com/v7.0/news/search?q=%E7%89%B9%E6%96%AF%E6%8B%89%20%E6%B5%8B%E8%AF%95&mkt=zh-CN
- 开发机代码请求 https://api.bing.microsoft.com/v7.0/news/search?q=%E7%89%B9%E6%96%AF%E6%8B%89+%E6%B5%8B%E8%AF%95&mkt=zh-CN
因为query里面有空格,一个是URL编码的 %20 ,一个是 + ,一开始以为是这个的问题,当我调整编码一致的时候,发现结果还是不一样
在同事的电脑上搜索的结果与开发机器一致,怀疑是代理问题
后来发现参数的 mtk 对区域有限制,比如你当前是在中国,搜索不到 mkt 为 en-US 的内容,反过来也是如此。
本机服务器在杭州,所以直接请求 zh-CN 的结果
en-US 必须是国外的服务器,所以在阿里云(香港)函数计算上搭建了一个代理服务,用于获取英文的搜索结果