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



本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/413140.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

PHP.ini 中的session 相关设置

php.ini设置参考项&#xff1a;//处理session存取的模式session.save_handler files//session档案存放路径session.save_path /tmp//session使用cookie的功能,启动: 1session.use_cookies 1//session名字session.name PHPSESSID//自动启动;0:关&#xff1b;1&#xff1a;开…

Myeclipse2015把web项目添加至tomcat中,添加列表中却没有想要添加的项目

Myeclipse2015把web项目添加至tomcat中&#xff0c;添加列表中却没有想要添加的项目?? 解决方法&#xff1a; 项目-右键-Properties-Myeclipse-Project Factes - Dynamic Web Module 前面打√ 然后点击 Apply ,在点击OK就可以添加了&#xff01;

工作342:消除平时环境的console

let transformRemoveConsolePlugin [] /*if (process.env.NODE_ENV production) {transformRemoveConsolePlugin [transform-remove-console] }*/module.exports {presets: ["vue/cli-plugin-babel/preset"],plugins: [...transformRemoveConsolePlugin] };这样就…

maven项目发布到tomcat里lib包没有发布的问题

背景&#xff1a;使用maven搭建一套开发环境 出现的问题&#xff1a; 编译之后在tomcat中web工程下面的lib包没有将jar包打入。截图如下&#xff1a; 解决方法&#xff1a;右键项目&#xff0c;选择properties&#xff0c;然后选在使用eclipse做web项目时&#xff0c;为了方便…

poj-2528线段树练习

title: poj-2528线段树练习 date: 2018-10-13 13:45:09 tags: acm刷题 categories:ACM-线段树概述 这道题坑了我好久啊啊啊啊&#xff0c;&#xff0c;&#xff0c;&#xff0c; 到现在也只是理解了kaungbin的代码&#xff0c;&#xff0c;&#xff0c;知道每一步做什么&#x…

[css] 当使用opacity时会使得元素的子元素也透明,此时不想要子元素也跟着透明怎么办?

[css] 当使用opacity时会使得元素的子元素也透明&#xff0c;此时不想要子元素也跟着透明怎么办&#xff1f; 当父元素使用opacity时&#xff0c;子元素也会继承该透明度&#xff0c;即使重新设置透明度也不行。楼上的两种方法要么是放弃使用opacity&#xff0c;要么是放弃使用…

[css] 在css中为什么说不建议使用@import?

[css] 在css中为什么说不建议使用import&#xff1f; import 属于 CSS&#xff0c;所以导入语句应写在 CSS 中&#xff0c;要注意的是导入语句应写在样式表的开头&#xff0c;否则无法正确导入外部文件&#xff1b;import 是 CSS2.1 才出现的概念&#xff0c;所以如果浏览器版…

javaWeb项目部署至tomcat下classes文件夹没有内容

解决方法&#xff1a;项目右键------Java Build Path----------Source 将Default output folder改成/src/main/webapp/WEB-INF/classes就可以了&#xff01;

第二次考核

https://gitee.com/sfr123/the_second_assessment/tree/master/SFR 7-1 学生类-构造函数 定义一个有关学生的Student类&#xff0c;内含类成员变量&#xff1a; String name、String sex、int age&#xff0c;所有的变量必须为私有(private)。 1.编写有参构造函数&#xff1a;…

[css] 写一个动画,向上匀速移动100px,向下以1.5倍速度移动200px,一直反复循环

[css] 写一个动画&#xff0c;向上匀速移动100px&#xff0c;向下以1.5倍速度移动200px&#xff0c;一直反复循环 .animation-block {width: 50px;height: 50px;background: red;margin-top: 200px;animation: up 1s linear, down 1.5s linear 1s;}keyframes up {0% {transform…

eclipse Maven项目发布到Tomcat下classes文件夹却没有子模块的编译类

解决方法&#xff1a; 1&#xff0c;在主项目上右键--Properties--Java Build Path 2&#xff0c;点击Link Source 3 , 点击Browse选择子项目的target----classes文件夹----点击确定 4 , 然后直接点击finish 5 , 在重新发布一下&#xff0c;再进去看WEB-INF下classes文件夹…

windows系统停止8080端口

1、首先查找到占用8080端口的进程号PID是多少 CMD>netstat -ano | findstr 8080 这个命令输出的最后一列表示占用8080端口的进程号是多少&#xff0c;假设为1234 2、kill掉这个进程 CMD>taskkill /F /PID 1234 参考地址&#xff1a;http://blog.csdn.net/zhengbo0/articl…

[css] 说出至少十条你理解的css规范

[css] 说出至少十条你理解的css规范 命名规范&#xff08;连字符-分隔的字符串&#xff09;文件宽度限制&#xff08;每行80个字符&#xff09;加注释编写选择器应有助于重用尽量不要加 !important避免使用CSS表达式选择<link> 舍弃 import避免使用滤镜&#xff08;IE 专…

马昕璐201771010118《面向对象程序设计(java)》第七周学习总结

第一部分&#xff1a;理论知识学习部分 Java用于控制可见性的4个访问权限修饰符&#xff1a; 1.private&#xff08;只有该类可以访问&#xff09; 2.protected&#xff08;该类及其子类的成员可以访问&#xff0c;同一个包中的类也可访问&#xff09; 3.public&#xff08;该类…

[css] 使用css画出一个五角星

[css] 使用css画出一个五角星 #star-five {margin: 50px 0;position: absolute;display: block;color: red;width: 0;height: 0;border-right: 100px solid transparent;border-bottom: 70px solid red;border-left: 100px solid transparent;transform: rotate(35deg);left: …

windows系统安装redis

第一步&#xff1a;进入 https://github.com/ServiceStack/redis-windows 进行下载安装包下载地址&#xff1a;https://github.com/MSOpenTech/redis/releases 这里提供windows的版本 3.0.501 可视化软件&#xff1a;http://www.oschina.net/news/55634/redisclient-2-0第二步&…

青蛙跳台阶算法

一、问题描述&#xff1a;一只青蛙一次可以跳上1级台阶&#xff0c;也可以跳上2级。求该青蛙跳上一个n级的台阶总共需要多少种跳法。 思路&#xff1a;首先考虑n等于0、1、2时的特殊情况&#xff0c;f(0) 0 f(1) 1 f(2) 2 其次&#xff0c;当n3时&#xff0c;青蛙的第一跳…

[css] 请说下你对css对象模型(CSSOM)的理解

[css] 请说下你对css对象模型(CSSOM)的理解 CSSOM 是一组允许 JavaScript 操作 CSS 的 API。它非常类似于 DOM&#xff0c;但是用于 CSS 而不是 HTML。它允许用户动态读取和修改 CSS 样式。个人简介 我是歌谣&#xff0c;欢迎和大家一起交流前后端知识。放弃很容易&#xff0…

HSSFCellStyle.ALIGN_CENTER报错

HSSFCellStyle.ALIGN_CENTER报错&#xff0c;是因为版本问题 将 hssfCellStyle.setAlignment(HSSFCellStyle.ALIGN_CENTER); 修改为&#xff1a;hssfCellStyle.setAlignment(HorizontalAlignment.CENTER);