Java HttpClient Post请求发送数据乱码
来源:互联网 发布:癌症最新研究进展知乎 编辑:程序博客网 时间:2024/06/11 13:24
描述:Web 客户端,利用 HttpClient 调用银行接口,银行的要求是:以 GBK 格式发送报文。
情况:本地不管怎样调整编码格式,银行端接收到的中文总是处于乱码状态(英文和数字不乱码)。
经过大量的资料查询,找到一些比较有用的资料。比如:这里
由于调用银行接口,对于 IP 地址有限制,故本机并没有办法直接调用,必须要发送到服务器上才能正确调用。
由于银行要求以 GBK 发送报文,所以新开了一个 Eclipse ,将 WEB 工程的所有文件编码都更改成 GBK 。
System.getProperties().list(System.out); String csn = Charset.defaultCharset().name();System.out.println("默认编码格式 = " + csn);
利用以上代码,本地运行时控制台输出:默认编码格式 = GBK。说明了本地 JDK 默认编码格式为 GBK。
由于不能在本机调试银行接口,当发送到服务器(linux)之后,日志输出“默认编码格式 = UTF-8”,说明服务器 JDK 默认编码格式为 UTF-8.
在代码中对 HttpClient 的编码各种设置都没有效果后,想着是否是 JDK 默认编码格式造成的问题。
由于是 Web 工程,当 Tomcat 启动时候,可以对 JDK 进行参数的设置,于是找到了下面的代码:
set JAVA_TOOL_OPTIONS=-Dfile.encoding=GBK -Duser.language=en -Duser.country=USJAVA_OPTS="-server -Dfile.encoding=GBK -Duser.language=en -Duser.country=US"
Windows 下,修改 $TOMCAT_HOME/bin/catalina.bat 文件,添加第一行的代码。
Linux 下,修改 $TOMCAT_HOME/bin/catalina.sh 文件,添加第二行代码。
添加完成上述代码后,启动 Tomcat 时,JDK 默认编码已经被更改成 GBK,当再次访问银行接口时,中文报文传送正确,银行接受乱码问题解决。
0 0
- Java HttpClient Post请求发送数据乱码
- httpClient 发送 post请求 json数据
- HttpClient post请求 发送Json数据
- java httpclient发送post get 请求
- java实现httpclient发送post请求
- Httpclient发送POST请求
- httpClient发送post请求
- HttpClient发送post请求
- httpclient发送post请求
- HttpClient 发送 POST 请求
- httpclient发送post请求
- httpClient发送post请求
- httpclient 发送post请求
- Java使用HttpClient发送Get请求和Post请求
- HttpClient --post请求数据
- 用HttpClient发送post请求
- 使用HttpClient发送POST请求
- 使用httpclient发送post请求
- 根据一个表里的字段查询另一个表里的另一个字段,再将查询的字段添加到第一个表里
- [知其然不知其所以然-25] How to setup systemtap
- c++知识总结
- 【Android工程师】 - 百度地图SDK的使用
- Swift - 类初始化和反初始化方法
- Java HttpClient Post请求发送数据乱码
- poj 1753 Flip Game(广搜)
- iOS开发之安装和使用Cocoapods
- opengl学习资料
- Java设置session超时(失效)的三种方式
- mysql下如何执行sql脚本
- 【52】java多线程剖析
- php用smtp发送邮件
- JVM 自动内存管理机制