【发布时间】:2017-03-20 09:26:35
【问题描述】:
我需要使用第三方 api,它需要如下所示的 url
URL?queryParam=02/10/1990
当我通过附加 queryParam(ab above) 调用该 api 时,它工作正常。
但是当我如下调用api时
GetMethod httpMethod = new GetMethod(url);
httpMethod.setQueryString(getNameValuePairs(requestParams));
其中 requestParams 是请求参数的映射。
api 报 400 错误。
我在这里使用的api是apache.common apis
当我查看 setQueryString 代码时,requestParams 是 url 编码的。
所以我的怀疑是。
- queryParams默认是url编码的吗?是的,这里apache api是在consumer端编码request param,consumer必须手动解码吗?
- 当通过附加queryParams从浏览器调用api时,浏览器是否也自己做url编码?
- 它的清洁解决方案是什么?
【问题讨论】:
-
为什么 UriBuilder 可以工作?它还对查询参数进行编码。
标签: java apache web-services api urlencode