【问题标题】:When sending via Commons HttpPost, how do I encode my NameValue pairs to be UTF-8?通过 Commons HttpPost 发送时,如何将我的 NameValue 对编码为 UTF-8?
【发布时间】:2013-04-25 01:07:03
【问题描述】:

我有一个 HttpPost 已经运行了几年,但我刚刚发现它无法传递某些字符(我可以看到参数在它们前往服务器之前在客户端看起来正确,我可以看到它们在服务器上以小三角形的形式到达......另外,当我从 Web 浏览器发出请求时,一切正常,因此,看起来请求没有使用正确的编码发出)。

这是我的代码:

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

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

另外一种非直接的方式也足够了:)

【问题讨论】:

  • 没有建议或帮助,只是投了反对票……这个问题有什么问题?我正在准确地解释我卡在哪里,展示我在做什么,并询问如何解决一个非常具体的编程问题!基本上满足所有 SO 标准。如果你要投反对票,至少有礼貌地说明原因!

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


【解决方案1】:

所以,在寻找了一段时间后,我找到了this example,结果证明需要扩展 PostMethod 并创建一个覆盖 getRequestCharSet() 并返回“UTF-8”的小类。在示例中,他们还设置了这样的内容类型:

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

我没有尝试过做一个,但没有尝试过,我只是将这两部分都添加到我的代码中,现在它可以完美运行。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-12-31
    • 1970-01-01
    • 1970-01-01
    • 2012-01-31
    • 2017-01-24
    • 1970-01-01
    • 1970-01-01
    • 2015-04-17
    相关资源
    最近更新 更多