httpsClient实例
- import java.io.BufferedReader;
- import java.io.File;
- import java.io.FileInputStream;
- import java.io.FileReader;
- import java.io.IOException;
- import java.io.InputStream;
- import java.io.InputStreamReader;
- import java.io.OutputStream;
- import java.net.URL;
- import java.util.HashMap;
- import java.util.Iterator;
- import java.util.Map;
- import javax.el.PropertyNotFoundException;
- import javax.net.ssl.HostnameVerifier;
- import javax.net.ssl.HttpsURLConnection;
- import javax.net.ssl.SSLSession;
- /**
- * https访问工具类
- * @author Cat
- *
- */
- public class HttpsClient {
- //读超时30s
- private final int timeout = 30000;
- private Map<String, String> reqProperty = null;
- private String reqEncode = "UTF-8";
- private String respEncode = "UTF-8";
- public HttpsClient(){
- String trustStore = System.getProperty("javax.net.ssl.trustStore");
- //抑制证书域名与实际域名不匹配的警告
- HostnameVerifier hv = new HostnameVerifier() {
- public boolean verify(String urlHostName, SSLSession session) {
- System.out.println("Warning: URL Host: " + urlHostName
- + " vs. " + session.getPeerHost());
- return true;
- }
- };
- HttpsURLConnection.setDefaultHostnameVerifier(hv);
- //初始化请求参数
- reqProperty = new HashMap<String, String>();
- reqProperty.put("Content-Type", "text/xml");
- }
- //设置请求参数
- public void setRequestProperty(Map<String, String> reqProperty) {
- this.reqProperty.putAll(reqProperty);
- }
- public String doGet(String urlstr) throws IOException {
- URL url = new URL(urlstr);
- HttpsURLConnection connection = (HttpsURLConnection) url.openConnection();
- fetchReqMap(connection);//设置请求属性
- connection.setReadTimeout(timeout);
- connection.setDoOutput(false); // true for POST, false for GET
- connection.setDoInput(true);
- connection.setRequestMethod("GET");
- connection.setUseCaches(false);
- String aLine = null;
- String ret = "";
- InputStream is = connection.getInputStream();
- BufferedReader aReader = new BufferedReader(new InputStreamReader(is, this.getRespEncode()));
- while ((aLine = aReader.readLine()) != null) {
- ret += aLine+ "\r\n";;
- }
- aReader.close();
- connection.disconnect();
- return ret;
- }
- public String doPost(String urlstr,byte data[]) throws IOException {
- URL url = new URL(urlstr);
- HttpsURLConnection connection = (HttpsURLConnection) url.openConnection();
- fetchReqMap(connection);
- // connection.setRequestProperty("SOAPAction","https://hms.wellcare.cn:8443/services/EnergyData");
- connection.setReadTimeout(timeout);
- connection.setDoOutput(true); // true for POST, false for GET
- connection.setDoInput(true);
- connection.setRequestMethod("POST");
- connection.setUseCaches(false);
- //写入post数据
- OutputStream out = connection.getOutputStream();
- out.write(data);
- //读出反馈结果
- String aLine = null;
- String ret = "";
- InputStream is = connection.getInputStream();
- BufferedReader aReader = new BufferedReader(new InputStreamReader(is, this.getRespEncode()));
- while ((aLine = aReader.readLine()) != null) {
- ret += aLine + "\r\n";
- }
- aReader.close();
- connection.disconnect();
- return ret;
- }
- /**
- * 直接将文件按二进制写入请求
- * @param urlstr
- * @param inputFile
- * @return
- * @throws IOException
- */
- public String doPost(String urlstr,File inputFile) throws IOException{
- FileInputStream fis = new FileInputStream(inputFile);
- byte[] data = new byte[(int) inputFile.length()];
- fis.read(data);
- fis.close();
- return doPost(urlstr, data);
- }
- /**
- * 字符串俺reqEncode编码方式二级制发送
- * @param urlstr
- * @param inputStr
- * @return
- * @throws IOException
- */
- public String doPost(String urlstr,String inputStr) throws IOException{
- byte[] data = inputStr.getBytes(this.getReqEncode());
- return doPost(urlstr, data);
- }
- private void fetchReqMap(HttpsURLConnection connection){
- Iterator<String> iterator = this.reqProperty.keySet().iterator();
- while(iterator.hasNext()){
- String key = iterator.next();
- connection.setRequestProperty(key, this.reqProperty.get(key));
- }
- }
- public void setRespEncode(String respEncode) {
- this.respEncode = respEncode;
- }
- public String getRespEncode() {
- return respEncode;
- }
- public void setReqEncode(String reqEncode) {
- this.reqEncode = reqEncode;
- }
- public String getReqEncode() {
- return reqEncode;
- }
- }
httpsClient实例的更多相关文章
- 最近学习工作流 推荐一个activiti 的教程文档
全文地址:http://www.mossle.com/docs/activiti/ Activiti 5.15 用户手册 Table of Contents 1. 简介 协议 下载 源码 必要的软件 ...
- Libcurl的编译_HTTP/HTTPSclient源代码演示样例
HTTP/HTTPSclient源代码演示样例 环境: zlib-1.2.8 openssl-1.0.1g curl-7.36 Author: Kagula LastUpdateDate: 2 ...
- js-静态、原型、实例属性
本篇来说一下js中的属性: 1.静态属性 2.原型属性 3.实例属性 静态属性: function klass(){} var obj=new klass(); klass.count=0; klas ...
- ZIP压缩算法详细分析及解压实例解释
最近自己实现了一个ZIP压缩数据的解压程序,觉得有必要把ZIP压缩格式进行一下详细总结,数据压缩是一门通信原理和计算机科学都会涉及到的学科,在通信原理中,一般称为信源编码,在计算机科学里,一般称为数据 ...
- EntityFramework Core 1.1是如何创建DbContext实例的呢?
前言 上一篇我们简单讲述了在EF Core1.1中如何进行迁移,本文我们来讲讲EF Core1.1中那些不为人知的事,细抠细节,从我做起. 显式创建DbContext实例 通过带OnConfiguri ...
- redis集成到Springmvc中及使用实例
redis是现在主流的缓存工具了,因为使用简单.高效且对服务器要求较小,用于大数据量下的缓存 spring也提供了对redis的支持: org.springframework.data.redis.c ...
- 流程开发Activiti 与SpringMVC整合实例
流程(Activiti) 流程是完成一系列有序动作的概述.每一个节点动作的结果将对后面的具体操作步骤产生影响.信息化系统中流程的功能完全等同于纸上办公的层级审批,尤其在oa系统中各类电子流提现较为明显 ...
- UWP开发之Template10实践:本地文件与照相机文件操作的MVVM实例(图文付原代码)
前面[UWP开发之Mvvmlight实践五:SuspensionManager中断挂起以及复原处理]章节已经提到过Template10,为了认识MvvmLight的区别特做了此实例. 原代码地址:ht ...
- echarts+php+mysql 绘图实例
最近在学习php+mysql,因为之前画图表都是直接在echart的实例demo中修改数据,便想着两相结合练习一下,通过ajax调用后台数据画图表. 我使用的是echart3,相比较第二版,echar ...
随机推荐
- 字符集转换: Ansi - Unicode
字符集转换: Ansi - Unicode wstring AnsiToUnicode (const string& strSrc ) { /*!< 分配目标空间 */ ,strSrc. ...
- IOS数据解析JSON
//非原创 作为一种轻量级的数据交换格式,json正在逐步取代xml,成为网络数据的通用格式. 有的json代码格式比较混乱,可以使用此“http://www.bejson.com/”网站来进行JSO ...
- 【风马一族_Android】强制activity的横屏与纵屏
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="ht ...
- 字符串转成int数组
package lianxi; import java.awt.image.ConvolveOp; public class ZhengshuShuzu { public static void ma ...
- js正则学习及一些正则集合
正则中文版详细说明请看中文版w3cschool-----http://www.w3school.com.cn/jsref/jsref_obj_regexp.asp微软正则表达式语言-快速参考:http ...
- tomcat6.0 数据库连接池配置问题
tomcat6.0 数据库连接池配置问题: 连接池配好后,启动tomat后,输入项目系统的登录名和密码,报 Cannot create JDBC driver of class '' for conn ...
- JSON对象配合jquery.tmpl.min.js插件,手动攒出一个table
jquery.tmpl.min.js 首先下载这个插件 1.绑定json那头的键 //TemplateDDMX 这个是这段JS的ID,这个必须写!!!!!! //${}为json的键的值,必须要填写正 ...
- PAT 字符串-02 删除字符串中的子串
/* 2 *PAT 字符串-02 删除字符串中的子串 3 *2015-08-09 4 作者:flx413 5 */ #include<stdio.h> #include<string ...
- Keil uVision4 代码编辑器中文字符乱码问题
MDK-ARM 使用中一直有个很纠结的问题,中文字符支持不好. 比如写代码注释,使用中文删除字符就会只删除一半问题.复制粘贴代码中间有中文就会出现乱码问题. 想过换IAR,新学个IDE也麻烦,上面的问 ...
- using System.Threading.Tasks;
using System.Threading.Tasks; .Net并行库介绍——Task1