HttpClient httpClient=CustomHttpClient.GetHttpClient();
/**
* 发起交易请求
*
* @param bean
* @return
*/
public String request(String reqJson, String url)
{
System.out.println("发起url[" + url + "]请求报文:" + reqJson);
HttpPost post = new HttpPost(url);
post.setHeader("Content-Type",
"application/json;charset=UTF-8");
BufferedReader br = null;
try
{
StringEntity formEntiry = new StringEntity(reqJson, "UTF-8");
post.setEntity(formEntiry);
HttpResponse resp = httpClient.execute(post);
HttpEntity entity = resp.getEntity();
br = new BufferedReader(new InputStreamReader(entity.getContent(),
"utf-8"));
StringBuffer responseString = new StringBuffer();
String result = br.readLine();
while (result != null)
{
responseString.append(result);
result = br.readLine();
}
String resJson = responseString.toString();
System.out.println("返回报文:" + resJson);
return resJson;
} catch (Exception cte)
{
System.out.print(cte);
return "";
} finally
{
if (br != null)
{
try
{
br.close();
} catch (IOException e)
{
}
}
}
}
- 线程安全的HttpCLient,单例模式,支持http、https协议
public static synchronized HttpClient GetHttpClient()
{
if (customHttpClient == null)
{
return httpClientInstance();
}
return customHttpClient;
}
private static HttpClient httpClientInstance()
{
KeyStore trustStore;
SSLSocketFactory sf = null;
try
{
trustStore = KeyStore.getInstance(KeyStore.getDefaultType());
trustStore.load(null, null);
sf = new MySSLSocketFactory(trustStore);
sf
.setHostnameVerifier(SSLSocketFactory.ALLOW_ALL_HOSTNAME_VERIFIER);
} catch (KeyManagementException e)
{
log.error(e.getMessage(), e);
} catch (NoSuchAlgorithmException e)
{
log.error(e.getMessage(), e);
} catch (UnrecoverableKeyException e)
{
log.error(e.getMessage(), e);
} catch (IOException e)
{
log.error(e.getMessage(), e);
} catch (CertificateException e)
{
log.error(e.getMessage(), e);
} catch (KeyStoreException e)
{
log.error(e.getMessage(), e);
}
HttpParams params = new BasicHttpParams();
HttpProtocolParams.setVersion(params, HttpVersion.HTTP_1_1);
HttpProtocolParams.setContentCharset(params, HTTP.UTF_8);
ConnManagerParams.setTimeout(params, TIME_OUT);
HttpConnectionParams.setConnectionTimeout(params, TIME_OUT);
HttpConnectionParams.setSoTimeout(params, TIME_OUT);
SchemeRegistry schReg = new SchemeRegistry();
schReg.register(new Scheme("http", PlainSocketFactory
.getSocketFactory(), 80));
schReg.register(new Scheme("https", sf, 443));
ClientConnectionManager conMgr = new ThreadSafeClientConnManager(
params, schReg);
customHttpClient = new DefaultHttpClient(conMgr, params);
return customHttpClient;
}
import java.io.IOException;
import java.net.Socket;
import java.net.UnknownHostException;
import java.security.KeyManagementException;
import java.security.KeyStore;
import java.security.KeyStoreException;
import java.security.NoSuchAlgorithmException;
import java.security.UnrecoverableKeyException;
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.ssl.SSLSocketFactory;
/**
* SSL全部信任登录
*
*
*/
public class MySSLSocketFactory extends SSLSocketFactory{
SSLContext sslContext = SSLContext.getInstance("TLS");
public MySSLSocketFactory(KeyStore truststore)
throws NoSuchAlgorithmException, KeyManagementException,
KeyStoreException, UnrecoverableKeyException
{
super(truststore);
TrustManager tm = new X509TrustManager(){
public void checkClientTrusted(X509Certificate[] chain,
String authType) throws CertificateException
{
}
public void checkServerTrusted(X509Certificate[] chain,
String authType) throws CertificateException
{
}
public X509Certificate[] getAcceptedIssuers()
{
return null;
}
};
sslContext.init(null, new TrustManager[] { tm }, null);
}
@Override
public Socket createSocket(Socket socket, String host, int port,
boolean autoClose) throws IOException, UnknownHostException
{
return sslContext.getSocketFactory().createSocket(socket, host, port,
autoClose);
}
@Override
public Socket createSocket() throws IOException
{
return sslContext.getSocketFactory().createSocket();
}
}
<script type="text/javascript">
$(function () {
$('pre.prettyprint code').each(function () {
var lines = $(this).text().split('\n').length;
var $numbering = $('<ul/>').addClass('pre-numbering').hide();
$(this).addClass('has-numbering').parent().append($numbering);
for (i = 1; i <= lines; i++) {
$numbering.append($('<li/>').text(i));
};
$numbering.fadeIn(1700);
});
});
</script>
分享到:
相关推荐
设备连接和短信发送均采用异步方式,即容器程序调用连接函数或发送函数后立即返回。由控件自行完成连接或发送过程,当操作完成后,将执行结果以事件的形式通知容器程序。 2、内部包含收发缓冲队列。控件可以同时接受...
JAVA开发人员必备是HTML格式的 JavaTM 2 Platform Standard Edition 6 API 规范 本文档是 Java 2 Platform Standard Edition 6.0 的 API 规范。 请参见: 描述 Java 2 Platform 软件包 java.applet 提供创建 ...
程序开发,存在很多问题:首先,每一次Web请求都要建立一次数据库连接。建立连接是一个费时的活动,每次都得花费0.05s~1s的时间,而且系统还要分配内存资源。这个时间对于一次或几次数据库操作,或许感觉不出系统...
5.8 思考与实践 第6章 HttpServletRequest的应用 6.1 HttpServletRequest简介 6.2 获取请求行的相关信息 6.3 获取网络连接信息 6.4 获取请求头信息 6.5 浏览器传递参数信息的细节 ...
ejb 3、jpa规范都属于sun公司所制订的java ee规范,因此把基于ejb 3+jpa的应用称为经典java ee架构,目前这种架构在java开发领域也有极大的市场占有率。 本书介绍了java ee规范的三大主要规范jsf、ejb 3和jpa,...
用JAVA开发的一个小型的目录监视系统,系统会每5秒自动扫描一次需要监视的目录,可以用来监视目录中文件大小及文件增减数目的变化。 Java日期选择控件完整源代码 14个目标文件 内容索引:JAVA源码,系统相关,日历,...
第1章 JAVA WEB开发简介 1.1、WEB发展历程 1.2、企业开发架构 1.3、JAVA EE架构 1.4、JAVA EE核心设计模式 1.5、Struts开发框架 1.6、本章摘要 1.7、开发实战讲解 第2章 HTML、JavaScript简介 2.1、服务器...
第1章 JAVA WEB开发简介 1.1、WEB发展历程 1.2、企业开发架构 1.3、JAVA EE架构 1.4、JAVA EE核心设计模式 1.5、Struts开发框架 1.6、本章摘要 1.7、开发实战讲解 第2章 HTML、JavaScript简介 2.1、服务器...
用JAVA开发的一个小型的目录监视系统,系统会每5秒自动扫描一次需要监视的目录,可以用来监视目录中文件大小及文件增减数目的变化。 Java日期选择控件完整源代码 14个目标文件 内容索引:JAVA源码,系统相关,日历,...
用JAVA开发的一个小型的目录监视系统,系统会每5秒自动扫描一次需要监视的目录,可以用来监视目录中文件大小及文件增减数目的变化。 Java日期选择控件完整源代码 14个目标文件 内容索引:JAVA源码,系统相关,日历,...
《Java项目开发全程实录》这一本书从开发背景、需求分析、系统功能分析、数据库分析、数据库建模、网站开发和网站发布或者程序打包与运行,每一过程都进行了详细的介绍。 目 录 第1章 进销存管理系统(Swing+SQL ...
应用了计算机网络通信技术和JAVA网络编程的基础知识,以JAVA为平台,利用Eclipse开发工具,并使用SQL Server 2000管理数据库数据开发出的基于Socket的网络即时通信系统。系统采用客户机/服务器(C/S)的模式设计,是...
用JAVA开发的一个小型的目录监视系统,系统会每5秒自动扫描一次需要监视的目录,可以用来监视目录中文件大小及文件增减数目的变化。 Java日期选择控件完整源代码 14个目标文件 内容索引:JAVA源码,系统相关,日历...
第1章 Java开发环境的搭建(教学视频:9分钟) 2 1.1 理解Java 2 1.2 搭建Java所需环境 3 1.2.1 下载JDK 3 1.2.2 安装JDK 4 1.2.3 配置环境 5 1.2.4 测试JDK配置是否成功 7 实例1 开发第一个Java程序 7 第2章 Java...
最大限度地减少时间和费用开发自定义的DSL(领域特定语言在Java)要求。 日志服务器 Apache Flume.tar Flume 是一个分布式、可靠和高可用的服务,用于收集、聚合以及移动大量日志数据,使用一个简单灵活的架构,就...
用JAVA开发的一个小型的目录监视系统,系统会每5秒自动扫描一次需要监视的目录,可以用来监视目录中文件大小及文件增减数目的变化。 Java日期选择控件完整源代码 14个目标文件 内容索引:JAVA源码,系统相关,日历...
第5章 Java Servlet中的网络编程 5. 1 Java套接字网络编程 5. 1. 1 InetAddress类 5. 1. 2 Socket类 5. 1. 3 给手机发送网上短信息 5. 2 Java网络编程中的高层类 5. 2. 1 URL类 5. 2. 2 URLConnection类 第6...
第1章 JAVA WEB开发简介 1.1、WEB发展历程 1.2、企业开发架构 1.3、JAVA EE架构 1.4、JAVA EE核心设计模式 1.5、Struts开发框架 1.6、本章摘要 1.7、开发实战讲解 第2章 HTML、JavaScript简介 2.1、服务器...