HttpPost (URLConnection)传参数中文乱码
client.getParams().setParameter(CoreConnectionPNames.CONNECTION_TIMEOUT, 1000000);
client.getParams().setParameter(CoreConnectionPNames.SO_TIMEOUT, 1000000);
HttpPost post = new HttpPost(url);
NameValuePair rq = new BasicNameValuePair("rq", requestObj.toString());
BasicNameValuePair data_type = new BasicNameValuePair("type", req_type);
NameValuePair sid = new BasicNameValuePair("sid", "web123");
List<NameValuePair> list = new ArrayList<NameValuePair>();
list.add(rq);
list.add(sid);
list.add(data_type);
StringEntity entity = new UrlEncodedFormEntity(list, HTTP.UTF_8);
post.setEntity(entity);
HttpResponse res = client.execute(post);
String respStr = EntityUtils.toString(res.getEntity(),HTTP.UTF_8);
this.inputStream = new ByteArrayInputStream(respStr.toString().getBytes("utf-8"));
return SUCCESS;
方式二:
//1、URL对象创建一个应用程序与url之间链接urlconnection对象
URL connectUrl = new URL(url);
HttpURLConnection conn = (HttpURLConnection) connectUrl.openConnection();
//2、设置属性
//post请求必须设置的两个
conn.setDoInput(true);
conn.setDoOutput(true);
//设置属性
conn.setUseCaches(false);
conn.setRequestProperty("accept", "*/*");
conn.setRequestProperty("connection", "Keep-Alive");
//打开与url之间的连接
conn.connect();
//如果使用URLconnection既要读取输入流 又要传参数 那么一定要先使用输出流 在使用输入流
//getOutputStream 中包含了connect 也就是说使用了getoutputStream的时候connect可以不写
OutputStream os = conn.getOutputStream();
//设置编码 防止到服务端出现中文乱码
OutputStreamWriter ow = new OutputStreamWriter(os, HTTP.UTF_8);
PrintWriter pw = new PrintWriter(ow,true);
//之前所有的参数只是写入写出流的缓存中并没有发送到服务端,执行下面这句话后表示将参数信息发送到服务端
pw.println("rq="+requestObj.toString()+"&sid=web123&type="+req_type);
pw.flush();
//获取服务端返回的信息
InputStream is = conn.getInputStream();
//设置编码 防止读取到的数据乱码
BufferedReader br = new BufferedReader(new InputStreamReader(is,HTTP.UTF_8)); String line = null;
String respStr = "";
while((line=br.readLine())!=null){
respStr+=line;
}
this.inputStream = new ByteArrayInputStream(respStr.toString().getBytes("utf-8"));
return SUCCESS;
在服务端接收到requestObj.toString()中文乱码 可用在创建Entity时指定编码 StringEntity entity = new UrlEncodedFormEntity(list, HTTP.UTF_8);
在返回的数据中也出现了中文乱码 可使用EntityUtils.toString指定字符编码 String respStr = EntityUtils.toString(res.getEntity(),HTTP.UTF_8);
HttpPost (URLConnection)传参数中文乱码的更多相关文章
- springmvc框架下ajax请求传参数中文乱码解决
springmvc框架下jsp界面通过ajax请求后台数据,传递中文参数到后台显示乱码 解决方法:js代码 运用encodeURI处理两次 /* *掩码处理 */ function maskWord( ...
- 关于url传参中文乱码问题
之前都一直很不了解中文编码得问题,之前在做项目中没碰到那么头痛的问题.所以一直没有了解中文乱码的问题. 问题描述: 地址: http://localhost:8080/sun-government/c ...
- 详解get请求和post请求参数中文乱码的解决办法
首先出现中文乱码的原因是tomcat默认的编码方式是"ISO-8859-1",这种编码方式以单个字节作为一个字符,而汉字是以两个字节表示一个字符的. 一,get请求参数中文乱码的解 ...
- jsp页面间传递参数 中文乱码问题(zz)
jsp页面间传递参数 中文乱码问题 1.传递参数 var url = "*****Test.jsp?param1="+encodeURI(encodeURI(str));//对 ...
- soapUI参数中文乱码问题解决方法 (groovy脚本中文乱码)
soapUI参数中文乱码问题解决方法 可能方案1: 字体不支持中文,将字体修改即可: file-preferences-editor settings-select font 修改字体,改成能显示中文 ...
- 使用过滤器(Filter)解决请求参数中文乱码问题(复杂方式)
前述: 在写这篇笔记之前,对笔记中的设计模式进行介绍: 本篇笔记中将要使用到的设计模式是:装饰(包装)设计模式 (1)装饰(包装)设计模式口诀: ...
- java web项目get,post请求参数中文乱码解决
[转载]原文地址:https://www.cnblogs.com/tom-plus/p/6392279.html 在开发过程中,有时候会碰到get,post请求参数中文乱码. 原因: Http请求传输 ...
- 解决get方法提交参数中文乱码问题:
解决get方法提交参数中文乱码问题: 1找到你们的tomcat的目录 2在这个目录下面\tomcat61-32\tomcat61\conf 3找到server.xml ,用notepad打开(没有就下 ...
- 解决Fiddler查看Post参数中文乱码的问题
解决Fiddler查看Post参数中文乱码的问题 解决方法: 1.win+R 2.打开注册表编辑器:输入regedit +回车+是 3.HKEY_CURRENT_USER\Software\Micro ...
随机推荐
- HDU 5131.Song Jiang's rank list (2014ACM/ICPC亚洲区广州站-重现赛)
Song Jiang's rank list Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 512000/512000 K (Java ...
- Codeforces 739B Alyona and a tree(树上路径倍增及差分)
题目链接 Alyona and a tree 比较考验我思维的一道好题. 首先,做一遍DFS预处理出$t[i][j]$和$d[i][j]$.$t[i][j]$表示从第$i$个节点到离他第$2^{j}$ ...
- [开源] FreeSql AOP 功能模块
前言 FreeSql 是一个功能强大的 .NETStandard 库,用于对象关系映射程序(O/RM),支持 .NETCore 2.1+ 或 .NETFramework 4.6.1+(QQ群:4336 ...
- JavaScript的Object
题目 var foo = new Object(); var bar = new Object(); var map = new Object(); map[foo] = "foo" ...
- sqld360
https://mauro-pagano.com/2017/04/15/sql-monitoring-flamegraph-and-execution-plan-temperature-2-0/ ht ...
- 求用delphi编写的LRC校验位算法函数,急!!!
求用delphi编写的LRC校验位算法函数,急!!! 某命令串为":010200000001FC" 其16进制为“3A 30 31 30 32 30 30 30 30 30 30 ...
- http协议中connection头的作用
在http1.1中request和reponse header中都有可能出现一个connection的头,此header的含义是当client和server通信时对于长链接如何进行处理. 在htt ...
- WinRAR4.20注册文件key文件注册码
1.首先安装rar4.2官方版 2.在WinRAR已安装文件夹内新建文本文档,打开文档,把下面代码复制进去 RAR registration datawncnUnlimited Company Lic ...
- MQ学习-RabbitMQ, ActiveMQ, Kafka等
之前学习过RabbitMQ,并且还安装过.安装记录的文章如下: Erlang:http://www.cnblogs.com/charlesblc/p/5512380.html RabbitMQ:htt ...
- eclipse 安装java web插件
1.eclipse java web搭建以及tomcat配置: http://www.cnblogs.com/yangyxd/articles/5615965.html 注意选择Eclipse IDE ...