我正在访问的web系列要求参数为urlencodedformentity。我无法根据Web服务的要求将空间更改为%20,而是将空间转换为+。
我的代码是:

HttpClient client = new DefaultHttpClient()
HttpPost post = new HttpPost(url);
UrlEncodedFormEntity entity = new UrlEncodedFormEntity(parameters,
            HTTP.UTF_8);
post.setEntity(entity);
HttpResponse resp = client.execute(post);

其中参数是List<NameValuePair>参数。
我读了很多帖子,都建议在emcoding之后手动将空格改为%20。在这里,我如何访问实体并手动更改它?
任何帮助都将不胜感激。

最佳答案

urlencodedformentity基本上是一个带有自定义构造函数的stringentity,实际上您不必使用它来创建一个可用的实体。

String entityValue = URLEncodedUtils.format(parameters, HTTP.UTF_8);
// Do your replacement here in entityValue
StringEntity entity = new StringEntity(entityValue, HTTP.UTF_8);
entity.setContentType(URLEncodedUtils.CONTENT_TYPE);
// And now do your posting of this entity

08-06 16:25