我在使用 URIBuilder 向 Bing API 发出 HTTP 请求时尝试对我的查询参数值进行 URL 百分比编码。
网址看起来像
"https://api.datamarket.azure.com/Data.ashx/Bing/SearchWeb/v1/Web?$format=json&Query="
查询字符串必须类似于 %27测试%20查询%27
使用 URLEncoder.encode(string, code),诸如“test query”之类的字符串会变成“test+query”,这是 Not Acceptable 。
URIUtil.encodeQuery()
返回“test%20query”,这几乎是可以接受的,只是它需要在开头和结尾加上%27。
当我尝试连接字符串以使其有效,然后将其加载到 URIBuilder 中时,URIBuilder 最终会出现
https://api.datamarket.azure.com/Data.ashx/Bing/SearchWeb/v1/Web?%24format=json&Query=%2527test%2520query%2527
这又是 Not Acceptable 。
如何解决这个问题?这让我发疯。
感谢您的帮助。
最佳答案
这是编码的 URI。 $ 是 %24 银行是%20
如果你想要真正的URI,你需要解码。
我认为解码方法很适合你。
引用这里:
http://hc.apache.org/httpclient-3.x/apidocs/org/apache/commons/httpclient/util/URIUtil.html
关于java - URL 百分比编码查询参数 Bing API Java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24045829/