Java url编码/解码如何在web服务调用中工作
我需要使用第三方api,该api期望url如下Java url编码/解码如何在web服务调用中工作,java,apache,web-services,api,urlencode,Java,Apache,Web Services,Api,Urlencode,我需要使用第三方api,该api期望url如下 URL?queryParam=02/10/1990 当我通过附加queryParam(上面的ab)调用该api时,它工作正常 但是当我调用api时,如下所示 GetMethod httpMethod=新的GetMethod(url); setQueryString(getNameValuePairs(requestParams)); 其中requestParams是请求参数的映射。 api给出了400个错误 我在这里使用的api是apache.co
URL?queryParam=02/10/1990 当我通过附加queryParam(上面的ab)调用该api时,它工作正常 但是当我调用api时,如下所示
GetMethod httpMethod=新的GetMethod(url); setQueryString(getNameValuePairs(requestParams)); 其中requestParams是请求参数的映射。 api给出了400个错误 我在这里使用的api是apache.common api 当我查看setQueryString代码时,requestParams是url编码的 所以我的怀疑是
一个简单的解决方案是框定uri并将其传递给getMethod()构造函数
string url;
url = baseURL+"?queryParam=02/10/1990" ;
GetMethod httpMethod = new GetMethod(url);
查询参数主要用于请求后有效负载。
在您的情况下,需要使用base64 url编码和解码。它将解决问题。使用UriBuilder为什么会工作?它还对查询参数进行编码。它会给出非法的arg异常。