Java的HttpURLConnection通过POST请求中文乱码
创建工具HttpRequestUtil类:
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.NameValuePair;
import org.apache.http.client.HttpClient;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.message.BasicNameValuePair;
import org.apache.http.util.EntityUtils;
public class HttpRequestUtil {@SuppressWarnings({ "rawtypes", "unchecked" })public static String doPost(String url,Map<String,String> map,String charset){ HttpClient httpClient = null; HttpPost httpPost = null; String result = null; try{ httpClient = new SSLClient(); httpPost = new HttpPost(url); //设置参数 List<NameValuePair> list = new ArrayList<NameValuePair>(); Iterator iterator = map.entrySet().iterator(); while(iterator.hasNext()){ Entry<String,String> elem = (Entry<String, String>) iterator.next(); list.add(new BasicNameValuePair(elem.getKey(),elem.getValue())); } if(list.size() > 0){ UrlEncodedFormEntity entity = new UrlEncodedFormEntity(list,charset); httpPost.setEntity(entity); } HttpResponse response = httpClient.execute(httpPost); if(response != null){ HttpEntity resEntity = response.getEntity(); if(resEntity != null){ result = EntityUtils.toString(resEntity,charset); } } }catch(Exception ex){ ex.printStackTrace(); } return result; } }
2.创建SSLClient类
import java.security.cert.CertificateException;
import java.security.cert.X509Certificate;
import javax.net.ssl.SSLContext;
import javax.net.ssl.TrustManager;
import javax.net.ssl.X509TrustManager;
import org.apache.http.conn.ClientConnectionManager;
import org.apache.http.conn.scheme.Scheme;
import org.apache.http.conn.scheme.SchemeRegistry;
import org.apache.http.conn.ssl.SSLSocketFactory;
import org.apache.http.impl.client.DefaultHttpClient;
public class SSLClient extends DefaultHttpClient{public SSLClient() throws Exception{ super(); SSLContext ctx = SSLContext.getInstance("TLS"); X509TrustManager tm = new X509TrustManager() { @Override public void checkClientTrusted(X509Certificate[] chain, String authType) throws CertificateException { } @Override public void checkServerTrusted(X509Certificate[] chain, String authType) throws CertificateException { } @Override public X509Certificate[] getAcceptedIssuers() { return null; } }; ctx.init(null, new TrustManager[]{tm}, null); SSLSocketFactory ssf = new SSLSocketFactory(ctx,SSLSocketFactory.ALLOW_ALL_HOSTNAME_VERIFIER); ClientConnectionManager ccm = this.getConnectionManager(); SchemeRegistry sr = ccm.getSchemeRegistry(); sr.register(new Scheme("https", 443, ssf)); }
}
3,需要的jar包文件:
commons-codec-1.6.jar
commons-logging-1.1.1.jar
fluent-hc-4.2.1.jar
httpclient-4.2.1.jar
httpclient-cache-4.2.1.jar
httpcore-4.2.1.jar
httpmime-4.2.1.jar
Java的HttpURLConnection通过POST请求中文乱码相关推荐
- java accept charset_springmvc中post请求中文乱码问题
StringHttpMessageConverter源码: /* * Copyright 2002-2016 the original author or authors. * * Licensed ...
- Get,Post请求中文乱码问题有效解决方法
对于做Java WEB项目同学来说,中文乱码问题是一个经常遇到而又非常头痛的问题,而最容易出现乱码的环节就是在浏览器向服务器发送请求的过程,至于出现乱码的原因不是本文的关注的重点,想了解的朋友可以参考 ...
- postmain请求中午乱码_完美解决Get和Post请求中文乱码的问题
对于Post请求,只需在Servlet或者jsp中写入如下代码就可以把解决从表单中传入的中文乱码问题 request.setCharacterEncoding("utf-8"); ...
- Tomcat 中 GET方式 请求 中文乱码 出现的原因
网上很多关于GET方式请求中文乱码的解决方案,大体类似. 这里主要讲一下Tomcat在处理URL参数过程中, 究竟是为什么会导致了GET方式请求的中文乱码. 一句话概括就是: Tomcat默认将单字节 ...
- Spring-解决请求中文乱码问题
Spring-解决请求中文乱码问题 参考文章: (1)Spring-解决请求中文乱码问题 (2)https://www.cnblogs.com/andyfengzp/p/6197993.html (3 ...
- 【Servlet】HTTP请求中文乱码的问题
请求中文乱码 在进行请求参数传递时,经常会遇到请求数据为中文时的乱码问题,当Form表单的文本域中输入中文时会产生乱码问题,出现乱码的原因与客户端的请求编码方式(GET请求或POST请求)以及服务器的 ...
- java读取.properties文件及解决中文乱码问题
java读取.properties文件及解决中文乱码问题 参考文章: (1)java读取.properties文件及解决中文乱码问题 (2)https://www.cnblogs.com/helloq ...
- java用HttpURLConnection发起HTTPS请求并跳过SSL证书,解决:unable to find valid certification path to requested targ
java用HttpURLConnection发起HTTPS请求并跳过SSL证书 问题出现:unable to find valid certification path to requested ta ...
- 解决get请求中文乱码问题
在很多情况下get请求会发生中文乱码的情况,而换做post就不会,这其中的根本原因是get请求默认的是使用"iso-8859-1"编码,接下来介绍两种种解决get请求编码的方法 1 ...
最新文章
- ldap 高级查询 禁用_化妆水有治疗耳部疾患、痔疮等11大功效?专家表示或含禁用物质...
- hdu1879 继续畅通工程 最小生成树
- android oom 全解析
- 在路上---一个平凡人的2015年总结及2016年展望
- Ubuntu 18.x 环境下mysql创建用户并更改用户权限
- 在Hi3531上运行QT
- Electron如何调用NodeJS扩展模块
- 微信10个实用技巧,值得收藏!
- wordpress 添加小工具分类
- [css] 行内css和important哪个优先级高?
- Linux(debian)操作基础(一)之压缩、解压缩
- 原来程序员成长的关键竟然是它?!
- 辽宁职称计算机和英语考试,2018年辽宁职称计算机报考有哪些要求?
- ArcGIS水文分析实战教程(18) 河段桩号与线性参考
- python 教程 第十章、 输入/输出
- Fabric v2.2 单机部署 使用tape测试
- Mongo和Couch对比
- 坚果云网盘教你拥有这5个习惯 升职加薪不是梦
- LCP 22. 黑白方格画(排列组合)
- 计算机网络双语常用词汇,计算机网络协议词汇Protocols
热门文章
- [vue] 你有使用过JSX吗?说说你对JSX的理解
- [css] 你有没有自己写过一套UI库?说下遇到哪些难点?
- [js] 举例说明面向对象编程有什么缺点?
- [js] 你有使用过pjax吗?它的原理是什么?
- 前端学习(1888)vue之电商管理系统电商系统之在sessionStrorage中保存按钮的激活状态
- 前端学习(1610):hook使用
- 前端学习(1267):axios的post传参
- mybatis学习(28):获取自增id方式二(在全局中配置setting选项)
- 第一百五十一期:最新计算机技能需求排名出炉:Python仅排第三,第一你猜得到吗?
- 第十三期:你不想错过的那些JSON工具