通过Commons HttpPost发送时,如何将NameValue对编码为UTF-8?

时间:2013-05-01 01:00:32

标签: android utf-8 apache-commons-httpclient

我有一个HttpPost,它已经运行了好几年但是我发现它没有提供某些字符(我可以看到它们在客户端前往服务器之前看起来正确,我可以看到它们作为服务器上的小三角形到达...同样,当我从Web浏览器发出请求时,一切正常,因此,看起来请求不是使用正确的编码进行的。)

这是我的代码:

HttpClient client = new HttpClient();
filePost = new PostMethod(URL_PATH);
filePost.setRequestBody(nvpArray);
responseCode = client.executeMethod(filePost);

我希望有一些相对直接的方法来转换此请求以处理UTF-8。

或者,非直接的方式也足够了:)

1 个答案:

答案 0 :(得分:0)

所以,在找了一会儿之后我找到了this example,结果就是需要扩展PostMethod并创建一个覆盖getRequestCharSet()并返回“UTF-8”的小类。在示例中,他们还设置了如下内容类型:

setRequestHeader("ContentType", "application/x-www-form-urlencoded;charset=UTF-8");

我没有尝试过做一个而不是另一个,我只是将两个部分添加到我的代码中,现在它完美无缺。