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

标签 java http encoding uri bing-api

我在使用 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/

相关文章:

java - 在Java中等待所有线程完成

java - REST 确保异步 - 找不到方法

android - 如何检查不受限制的 Internet 访问? (强制门户检测)

http - 转换函数的 RESTful api 设计

java - 如何阻止 Android recyclerview 中的搜索过滤器不断崩溃

java - Android GCM 注册失败。为什么?

java - 如何通过 Java Http Post 发送和接受文件?

php - 不同浏览器中 $_GET 参数的变音问题 (PHP)

Python Nltk :UnicodeDecodeError: 'utf-8' codec can't decode byte 0xe9 in position 50: invalid continuation byte

java - 我无法在 java 文件中写入一些字符(编码问题)