Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/317.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/haskell/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java UrlEncodedFormEntity(nameValuePairs)将垃圾添加到参数值中_Java_Apache Commons Httpclient - Fatal编程技术网

Java UrlEncodedFormEntity(nameValuePairs)将垃圾添加到参数值中

Java UrlEncodedFormEntity(nameValuePairs)将垃圾添加到参数值中,java,apache-commons-httpclient,Java,Apache Commons Httpclient,以下是我的代码片段: HttpClient client = new DefaultHttpClient(); String urlStr = FolderManager.ApplicationUnderTestUrl(); HttpPost post = new HttpPost(urlStr); List<BasicNameValuePair> nameValuePairs = new ArrayList<BasicNameValuePair>(1);

以下是我的代码片段:

HttpClient client = new DefaultHttpClient();    
String urlStr = FolderManager.ApplicationUnderTestUrl();
HttpPost post = new HttpPost(urlStr);   
List<BasicNameValuePair> nameValuePairs = new ArrayList<BasicNameValuePair>(1);

if ((paramName != null ) && (paramVal != null))
{
    for (int i = 0; i < paramName.length; i++) 
    {
        nameValuePairs.add(new BasicNameValuePair(paramName[i], paramVal[i]));
    }
}
post.setEntity(new UrlEncodedFormEntity(nameValuePairs ,"UTF-8"));      
HttpResponse response = client.execute(post);       
BufferedReader rd = new BufferedReader(new InputStreamReader(response.getEntity().getContent()));   
HttpClient=newdefaulthttpclient();
字符串urlStr=FolderManager.ApplicationUnderTestUrl();
HttpPost=新的HttpPost(urlStr);
List nameValuePairs=新的ArrayList(1);
if((paramName!=null)&&(paramVal!=null))
{
for(int i=0;i

上面的代码在遇到“”(空格)的地方向我的参数值添加一些+(加号)。如何避免这种情况?

这是非常正常的,编码url会导致这种行为。我建议你用自己的方式手动编码你想要的东西。没有其他方法吗?我的代码有很多不同的请求,参数描述就是这样完成的。我可以用其他技术来解决这个问题吗?
+
会再次被解码到一个空格。@JoopEggen你能解释一下吗?通过HTTP;URL编码是用于HTTP传输的,如果需要自己做的话,它是URLEncoder的挂件。