最近在做相关的支付工作,接口间内部需要使用用https的方式提交数据,寻寻觅觅了很长时间通常的做法是将证书安装到本机,再使用https链接,这样极其不方便,如果我方使用的是集群的方式,即使是两个命令,那这个工作也不容忽视,毕竟现在时21世纪,能自动的就不要人工。有时人工总会出点问题!~~
废话少说了,直接上代码
import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.security.cert.X509Certificate;
import javax.net.ssl.SSLContext;
import javax.net.ssl.TrustManager;
import javax.net.ssl.X509TrustManager;
import org.apache.http.HttpResponse;
import org.apache.http.HttpVersion;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.conn.ClientConnectionManager;
import org.apache.http.conn.params.ConnManagerPNames;
import org.apache.http.conn.params.ConnPerRouteBean;
import org.apache.http.conn.scheme.PlainSocketFactory;
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;
import org.apache.http.impl.conn.SingleClientConnManager;
import org.apache.http.params.BasicHttpParams;
import org.apache.http.params.HttpParams;
import org.apache.http.params.HttpProtocolParams;
public class HttpsTest {
public static void main(String[] args) throws Exception {
String url = "https://abc.com/usr/signin.do
";
// // 获得密匙库
// KeyStore trustStore = KeyStore.getInstance(KeyStore.getDefaultType());
// FileInputStream instream = new FileInputStream(new File(" D:/zzaa "));
// // 密匙库的密码
// trustStore.load(instream, " 123456 ".toCharArray());
// // 注册密匙库
X509TrustManager tm = new X509TrustManager() {
public void checkClientTrusted(X509Certificate[] xcs, String string) {}
public void checkServerTrusted(X509Certificate[] xcs, String string) {}
public X509Certificate[] getAcceptedIssuers() {return null;}
};
SSLContext sslcontext = SSLContext.getInstance("TLS");
sslcontext.init(null, new TrustManager[]{tm}, null);
SSLSocketFactory socketFactory = new SSLSocketFactory(sslcontext,SSLSocketFactory.STRICT_HOSTNAME_VERIFIER);
// 不校验域名
// socketFactory.setHostnameVerifier(SSLSocketFactory.ALLOW_ALL_HOSTNAME_VERIFIER);
Scheme sch = new Scheme("https", 443, socketFactory);
SchemeRegistry schemeRegistry = new SchemeRegistry();
schemeRegistry.register(new Scheme("http", PlainSocketFactory.getSocketFactory(), 80));
schemeRegistry.register(sch);
HttpParams params = new BasicHttpParams();
params.setParameter(ConnManagerPNames.MAX_TOTAL_CONNECTIONS, 30);
params.setParameter(ConnManagerPNames.MAX_CONNECTIONS_PER_ROUTE, new ConnPerRouteBean(30));
params.setParameter(HttpProtocolParams.USE_EXPECT_CONTINUE, false);
HttpProtocolParams.setVersion(params, HttpVersion.HTTP_1_1);
ClientConnectionManager cm = new SingleClientConnManager(params, schemeRegistry);
HttpClient httpClient = new DefaultHttpClient(cm, params);
// 获得HttpGet对象
HttpPost post = new HttpPost(url);
// 发送请求
HttpResponse response = httpClient.execute(post);
// 输出返回值
InputStream is = response.getEntity().getContent();
BufferedReader br = new BufferedReader(new InputStreamReader(is));
String line = "";
while ((line = br.readLine()) != null) {
System.out.println(line);
}
}
}
分享到:
相关推荐
httpClient自动接受https请求的所有证书代码,修改相应测试url,主函数运行即可
不会的可以在评论区留言哈,这是我自己做项目用到的。所以绝对可用!同时共享出来给到大家
使用HttpClient4.5实现https请求忽略SSL证书验证工具类
apache httpclient document apache httpcore document
apache httpclient jar包
apache HttpClient jar包
Apache httpclient 4.5.12版本源码,不包含jar包。适合学习原理,查看各种接口的实现。
Apache_HttpClient4.x简明教程高清PDF版.pdf Apache_HttpClient4.x简明教程高清PDF版.pdf
org.apache httpclient 4.5源代码,通过eclipse代码项目代码后可以直接查看httpclient源代码,与您的工程代码关连起来。
目录前言正文OkHttp使用示例源码解析Apache HttpClient使用示例源码解析GoogleHttpClient哪个更香?总结声明 前言 前八篇文章介绍完了feign-core核心内容,从本篇开始将介绍它的“其它模块”。其实核心模块可以独立...
import org.apache.commons.httpclient.HttpClient; import org.apache.commons.httpclient.HttpException; import org.apache.commons.httpclient.HttpStatus; import org.apache.commons.httpclient.methods....
wechatpay-apache-httpclient-0.2.1.jar
apache httpclient 源码和 jar包 源码不是反编译的
HttpClient配置SSL绕过https证书实例,附件中包含所需httpclient组件jar库。博客地址:http://blog.csdn.net/irokay/article/details/78801307。
详细讲解Apache httpclient的原理以及使用 深入理解httpclient
得到的HttpClient在执行请求时将自动携带身份认证信息,并检查应答的微信支付签名。 项目状态 当前版本0.2.2为测试版本。请商户的专业技术人员在使用时注意系统和软件的正确性和兼容性,以及带来的风险。 环境要求 ...
NULL 博文链接:https://antlove.iteye.com/blog/1815470
Apache HttpComponents Client的4.5.6版本 ,下载引入工程即可。
JAVA Apache_HttpClient4.x简明教程高清PDF版.pdf