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 ...
随机推荐
- (4)JavaScript引用类型
Object类 创建object实例的方式有两种 1.第一种是使用 new 操作符后跟 Object 构造函数 var person = new Object(); person.name = &qu ...
- 2018年东北农业大学春季校赛 E 阶乘后的0【数论】
链接:https://www.nowcoder.com/acm/contest/93/E来源:牛客网 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 262144K,其他语言52428 ...
- Codechef Chef and Triangles(离散化+区间并集)
题目链接 Chef and Triangles 先排序,然后得到$m - 1$个区间: $(a[2] - a[1], a[2] + a[1])$ $(a[3] - a[2], a[3] + a[2]) ...
- 什么是yarn?
[学习笔记] 什么是yarn?马克-to-win @ 马克java社区:YARN (Yet Another Resource Negotiator,另一种资源协调者)是Hadoop的一个资源管理系统, ...
- (持续集成)win7上部署Jenkins+MSBuild+Svn+SonarQube+SonarQube Scanner for MSBuild (一)
一.Jenkins介绍 jenkins是一个广泛用于持续构建的可视化web工具,持续构建说得更直白点,就是各种项目的”自动化”编译.打包.分发部署.jenkins可以很好的支持各种语言(比如:java ...
- QQ聊天窗口上的广告与QQ弹窗广告的完美屏蔽去除
涉及的软件 1. QQ (笔者的为v8.2版本) 2. Win7 3. ADSafe(3.13.308.9900正式版) 前言 QQ广告十分讨人厌,除了QQ弹窗的广告,让人十分反感外,最近发现QQ聊 ...
- 【spring boot】在自定义拦截器中从request中获取json字符串
又这样的需求,需要在自定义的拦截器中获取request中的数据,想获取到的是JSON字符串 那需要在拦截器中写这样一个方法 public static String getOpenApiRequest ...
- SVN源码服务器搭建-详细教程
一.引言 笔者曾经试图在网上搜索一篇关于SVN源代码服务器搭建方面的中文技术文章,可惜,所找到的,要么是不完整,要么就是对笔者没什么帮助的文章,TortoiseSvn的帮助文档固然强大,但因为是英文, ...
- 自学MVC看这里——全网最全ASP.NET MVC 教程汇总【转】
自学MVC看这里——全网最全ASP.NET MVC 教程汇总 http://www.cnblogs.com/powertoolsteam/archive/2015/08/13/4667892.html ...
- MFC MFC对话框滚动条的使用
对话框的(上下/左右)滚动事件,比如,把一个比较大的对话框放入tab控件的某一页时,就需要添加滚动条.在使用了java和qt等图形界面化的集成开发环境之后,再使用MFC,就会发现,想要让一个对话框 ...