我尝试使用URIBuilder向Bing API发出HTTP请求时,对我的查询参数值进行网址百分比编码。
网址看起来像
"https://api.datamarket.azure.com/Data.ashx/Bing/SearchWeb/v1/Web?$format=json&Query="
查询字符串必须是这样的 %27Test%20query%27
使用URLEncoder.encode(字符串,代码),诸如"测试查询"之类的字符串变为" test + query"这是不可接受的。
URIUtil.encodeQuery()
返回"测试%20query"这几乎是可以接受的,除了在开始和结束时需要%27。
当我尝试连接字符串以使其有效时,然后将其加载到URIBuilder中,URIBuilder最终以
结束https://api.datamarket.azure.com/Data.ashx/Bing/SearchWeb/v1/Web?%24format=json&Query=%2527test%2520query%2527
这又是不可接受的。
我该如何解决这个问题?它让我疯了。
感谢您的帮助。
答案 0 :(得分:1)
这是编码的URI。 $是%24 银行是%20
如果你想要真正的URI,你需要解码。
我认为解码方法适合您。
参考:
http://hc.apache.org/httpclient-3.x/apidocs/org/apache/commons/httpclient/util/URIUtil.html