Dud*_*Bro 3 java apache-httpcomponents
如何在Apache HTTP组件中设置字符编码?
我做这样的事情:
Form form = Form.form();
form = form.add("somekey", "somevalue");
Request request = Request.Post("http://somehost/some-form")
.request.bodyForm(form.build());
Run Code Online (Sandbox Code Playgroud)
"somekey"和"somevalue"是unicode字符串,因为所有java字符串都是unicode.我测试时,http组件将它们转换为latin-1.我希望它转换为其他东西(例如,utf-8).
cyf*_*r01 10
按照您在示例中显示的内容,您似乎正在使用流畅的API.
查看javadocs有一个版本,request.bodyForm()它接受一个字符集:
import org.apache.http.Consts;
...
request = request.bodyForm(form.build(), Consts.UTF_8);
Run Code Online (Sandbox Code Playgroud)
根据消息来源,charset默认为Consts.ISO_8859_1(aka Latin-1).
如果这不起作用,请考虑:
import org.apache.http.Consts;
...
request.elementCharset(Consts.UTF_8);
Run Code Online (Sandbox Code Playgroud)作为最后的手段,应该可以设置内容字符集.查看源代码elementCharset(),您可以尝试以下方法:
import org.apache.http.Consts;
import org.apache.http.params.CoreProtocolPNames;
...
request.config(CoreProtocolPNames.HTTP_CONTENT_CHARSET, Consts.UTF_8);
Run Code Online (Sandbox Code Playgroud)| 归档时间: |
|
| 查看次数: |
2958 次 |
| 最近记录: |