httpclient
EntityEnclosingMethod httpMethod = new PostMethod(url);
// 此处运用连接池技术。
MultiThreadedHttpConnectionManager manager = new MultiThreadedHttpConnectionManager();
// 设定参数:与每个主机的最大连接数
manager.getParams().setDefaultMaxConnectionsPerHost(10);
// 设定参数:客户端的总连接数
manager.getParams().setMaxTotalConnections(20);
// 使用连接池技术创建HttpClient对象
HttpClient httpClient = new HttpClient(manager);
// 设置超时时间
httpClient.getHttpConnectionManager().getParams().setConnectionTimeout(30000);
//设置请求头
httpMethod.setRequestHeader(type, value);
// 发送含xml消息体
RequestEntity entity = new StringRequestEntity(xml, "text/xml", "UTF-8");
httpMethod.setRequestEntity(entity);
int resultCode = httpClient.executeMethod(httpMethod);
//获取响应消息头
Header[] headers = httpMethod.getResponseHeaders();
//返回响应报文
String xml = httpMethod.getResponseBodyAsString();
https
// 重写X509TrustManager类的三个方法,信任服务器证书
private X509TrustManager xtm = new X509TrustManager()
{
public void checkClientTrusted(X509Certificate[] chain, String authType)
{
}
public void checkServerTrusted(X509Certificate[] chain, String authType)
{
}
public X509Certificate[] getAcceptedIssuers()
{
return null;
}
};
// 信任主机
private HostnameVerifier hnv = new HostnameVerifier()
{
public boolean verify(String hostname, SSLSession session)
{
return true;
}
};
//构造SSLContext
/**
* 安全套接字的实现类
*/
SSLContext sslContext = null;
try
{
// sslContext = SSLContext.getInstance("TLS");
sslContext = SSLContext.getInstance("SSL");
X509TrustManager[] xtmArray = new X509TrustManager[] {xtm};
sslContext.init(null, xtmArray, new java.security.SecureRandom());
}
catch (GeneralSecurityException gse)
{
System.out.println("Https:DataSender:General Security Exception .");
gse.getStackTrace();
}
if (sslContext != null)
{
HttpsURLConnection.setDefaultSSLSocketFactory(sslContext.getSocketFactory());
}
HttpsURLConnection.setDefaultHostnameVerifier(hnv);
//通过Https发送消息
// System.setProperty("javax.net.debug","true");
URL remoteHostURL;
HttpsURLConnection httpsUrlConnection = null;
// 建立连接
try
{
remoteHostURL = new URL(ct.getRemoteHostURI());
System.out.println(ct.getRemoteHostURI());
httpsUrlConnection = (HttpsURLConnection)remoteHostURL.openConnection();
}
catch (Exception _ex)
{
System.out.println("Unable to openConnection on URL.");
_ex.printStackTrace();
}
byte[] Msg = ct.getMessage();
HttpsURLConnection.setFollowRedirects(true);
httpsUrlConnection.setInstanceFollowRedirects(true);
httpsUrlConnection.setDoOutput(true);
httpsUrlConnection.setDoInput(true);
httpsUrlConnection.setRequestMethod("POST");
httpsUrlConnection.setRequestProperty("Content-length", Integer.toString(Msg.length));
httpsUrlConnection.setRequestProperty("Content-type", "application/x-xxxxxxxx; version=1.0");
httpsUrlConnection.connect();
//发送消息体
OutputStream outStream = null;
try
{
outStream = httpsUrlConnection.getOutputStream();
outStream.write(Msg);
outStream.flush();
}
finally
{
if (outStream != null)
{
outStream.close();
}
}
//接收响应报文
int responseCode = httpsUrlConnection.getResponseCode();
InputStream is = httpsUrlConnection.getInputStream();
byte[] b = new byte[is.available()];
is.read(b);
System.out.println(new String(b));
分享到:
相关推荐
Java的`HttpURLConnection`类是处理HTTP和HTTPS请求的基础,而`HttpsURLConnection`则是它的HTTPS特定实现。 1. **配置SSL上下文**: 当访问HTTPS网址时,Java会检查服务器的SSL证书。如果证书不在受信任的证书...
Java抓取https网页数据,解决peer not authenticated异常。导入eclipse就能运行,带有所用的jar包(commons-httpclient-3.1.jar,commons-logging.jar,httpclient-4.2.5.jar,httpcore-4.2.4.jar)
在Java编程中,HTTPS(Hypertext Transfer Protocol Secure)是一种基于HTTP的安全协议,它通过SSL/TLS(Secure Sockets Layer/Transport Layer Security)提供加密处理、服务器身份验证和消息完整性检查,以保护...
java 发送https get请求工具类
在Java编程环境中,进行HTTPS POST请求是常见的网络通信任务,特别是在需要安全传输敏感数据时,如用户登录信息或支付详情。HTTPS(HTTP over SSL/TLS)提供了加密和身份验证机制,确保了数据的隐私和完整性。本文将...
### Java 发送 HTTPS 请求时遇到证书问题解析 在进行网络通信的过程中,HTTPS 协议由于其安全性被广泛应用。本文将围绕“Java 发送 HTTPS 请求证书问题”这一主题展开讨论,通过对给定文件中的代码示例及操作步骤...
在Java编程中,访问HTTPS网址并下载文件是一个常见的任务,特别是在需要安全传输敏感数据或确保数据完整性时。这里我们将深入探讨如何使用Java 1.7版本处理这一过程,包括处理SSL证书。 首先,理解HTTPS(超文本...
压缩包里包含http和https两种请求,第一个文件是http请求包含post和get两种方式,剩下的是https的请求,最后一个文件里包含https的post和get两种方式。中间的两个是post 和 get 分开写的,按照需要引用吧
在Java编程中,HTTPS(Hypertext Transfer Protocol Secure)是一种用于在互联网上安全传输数据的协议,它基于HTTP,但提供了额外的安全性层,通过SSL/TLS(Secure Sockets Layer/Transport Layer Security)来加密...
在Java编程中,HTTPS(Hypertext Transfer Protocol Secure)是一种基于HTTP协议的安全通信协议,用于在客户端和服务器之间建立安全的、加密的数据传输通道。它主要用于保护用户数据,防止中间人攻击和数据篡改。本...
在Java编程语言中,发送HTTP和HTTPS请求是常见的任务,特别是在开发Web服务客户端或进行API交互时。HTTP(超文本传输协议)和HTTPS(安全超文本传输协议)是用于在客户端和服务器之间交换数据的标准。这里我们将深入...
在Java编程中,HttpClient是一个非常重要的库,常用于执行HTTP请求。当涉及到HTTPS接口调用时,HttpClient可以处理加密通信,确保数据传输的安全性。在这个主题中,我们将深入探讨如何在Java中使用HttpClient来实现...
使用java写的访问https网络协议的网址,绕过了证书的验证
在Java编程中,访问HTTPS(安全超文本传输协议)接口通常涉及到处理数字证书,这是为了确保数据传输的安全性。HTTPS通过使用SSL/TLS协议来加密通信,而证书是该协议的一部分,用于验证服务器的身份。本篇文章将深入...
java发送https请求的例子
windows系统上的http和https抓包工具, fiddler是http https监控工具 如果要监控java程序,需要添加如下代码: System.setProperty("http.proxyHost", "127.0.0.1"); System.setProperty("http.proxyPort", "8888...
http客户端java程序,代码质量高,经过测试。
如何利用Java调用Https的接口,并附有程序示例。
Java提供了一个名为`java.net.URL`的类,用于处理URLs,同时`java.net.HttpURLConnection`类支持HTTP和HTTPS的连接。当使用`HttpURLConnection`创建一个HTTPS连接时,需要处理SSL上下文,如信任管理器和主机名验证。...
"JAVA利用HttpClient进行POST请求(HTTPS)" JAVA HttpClient是Apache软件基金会提供的一个开源实现HTTP客户端的Java库,能够帮助开发者轻松地与HTTP服务器进行交互。在实际项目中,我们经常需要使用HttpClient来发送...