httpClient使用postMethod方法发送请求,携带参数并解决中文乱码问题
2016-10-11 20:22
2907 查看
前言:工作中遇到两个系统之间通信的问题,需求是这样的:要求将信息上报给上级部门(这里的上级部门是两一个系统),这就是跨系统通信了
解决方案:使用httpclient实现网络通信,传递数据。
关键问题:httpClient postMethod 传递参数 防止中文乱码
一,所需jar包
maven引用如下:
二,使用httpclient的postMethod方法发送请求:
主要说一下:
结语:在网上看了很多种httpclient的用法,自己在做的时候也遇到很多问题,现在问题解决了,写博客的时候却感觉没什么可写的,关键是找到正确的方式。如上代码中我已经实现,并且可以使用。
如果你恰好也有同样的需求,在看了我的代码后有不明白的地方,可以给我留言,或者加我的qq:416404891,我会尽力给你解答。
互相学习。。。。。。。。。。。。。。。。。。
晚安!
解决方案:使用httpclient实现网络通信,传递数据。
关键问题:httpClient postMethod 传递参数 防止中文乱码
一,所需jar包
maven引用如下:
<dependency> <groupId>commons-httpclient</groupId> <artifactId>commons-httpclient</artifactId> <version>3.0</version> </dependency> <dependency> <groupId>commons-codec</groupId> <artifactId>commons-codec</artifactId> <version>1.3</version> </dependency> <dependency> <groupId>commons-logging</groupId> <artifactId>commons-logging-api</artifactId> <version>1.1</version> </dependency>
二,使用httpclient的postMethod方法发送请求:
//创建PostMethod的子类设置编码格式 public static class UTF8PostMethod extends PostMethod{ public UTF8PostMethod(String url){ super(url); } @Override public String getRequestCharSet() { //return super.getRequestCharSet(); return "UTF-8"; } }
JSONObject json = JSONObject.fromObject(event);//将java对象转换为json对象 String str = json.toString();//将json对象转换为字符串 String url = "http://172.20.57.87:8080/gyly_ec_new3/api/mobileservices/district";//接口url HttpClient client = new HttpClient();//创建httpClient对象 PostMethod post = new UTF8PostMethod(url);//创建PostMethod的子类UTF8PostMethod来设置编码 NameValuePair message = new NameValuePair("json", str);//post请求必须使用 NameValuePair 类传递参数 post.setRequestBody(new NameValuePair[]{message}); try { int code=client.executeMethod(post);//发送数据 if (code==200) { System.out.println("请求成功!"); }else { System.out.println("请求失败!"); } } catch (HttpException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); }finally { post.releaseConnection();//关闭连接 }上面的代码都有备注。
主要说一下:
PostMethod post = new UTF8PostMethod(url);//创建PostMethod的子类UTF8PostMethod来设置编码这里使用postMethod 对象,防止中文乱码,必须创建其子类
UTF8PostMethod设置编码,才可以防止中文乱码。
结语:在网上看了很多种httpclient的用法,自己在做的时候也遇到很多问题,现在问题解决了,写博客的时候却感觉没什么可写的,关键是找到正确的方式。如上代码中我已经实现,并且可以使用。
如果你恰好也有同样的需求,在看了我的代码后有不明白的地方,可以给我留言,或者加我的qq:416404891,我会尽力给你解答。
互相学习。。。。。。。。。。。。。。。。。。
晚安!
相关文章推荐
- jsp带中文请求参数的乱码问题的解决方法
- jsp带中文请求参数的乱码问题的解决方法
- [JavaEE]Get请求URI中带的中文参数在服务端乱码问题的解决方法
- ajax post请求中文乱码问题解决(不使用escape方法,只使用filter)
- get请求时候参数中含有“中文”字段出现乱码问题的原因和解决方法
- 使用过滤器(Filter)解决请求参数中文乱码问题(复杂方式)
- 在Servlet中使用getParameter()方法获取get请求中的中文参数乱码解决方法
- 页面get请求 中文参数方法乱码问题的快速解决方法
- 解决spring3.0.5使用RestTemplate发送post请求响应中文乱码问题
- 使用过滤器(Filter)解决请求参数中文乱码问题(复杂方式)
- 使用过滤器(Filter)解决请求参数中文乱码问题(复杂方式)
- Android编程向服务器发送请求时出现中文乱码问题的解决方法
- 使用SpringMVC参数传递时,解决get请求时中文乱码的问题
- 从js向Action传中文参数出现乱码问题的解决方法
- jsp:forward jsp:include传中文参数乱码问题的解决方法
- Android中发送网络请求时参数为中文,导致请求的结果不正确的解决方法
- Java乱码 数据库乱码 url乱码 url中文参数乱码 标签乱码问题解决方法
- springMvc IE浏览器 前台中文参数 乱码问题解决方法
- HTML的Get方法URL传递中文参数,解决乱码问题
- Get,Post请求中文乱码问题有效解决方法