URL百分比编码查询参数Bing API Java

时间:2014-06-04 19:21:50

标签: java http encoding uri bing-api

我尝试使用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 

这又是不可接受的。

我该如何解决这个问题?它让我疯了。

感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

这是编码的URI。 $是%24 银行是%20

如果你想要真正的URI,你需要解码。

我认为解码方法适合您。

参考:

http://hc.apache.org/httpclient-3.x/apidocs/org/apache/commons/httpclient/util/URIUtil.html