`
z_jiankun
  • 浏览: 164263 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

java http, https

阅读更多

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访问https网址下载文件

    Java的`HttpURLConnection`类是处理HTTP和HTTPS请求的基础,而`HttpsURLConnection`则是它的HTTPS特定实现。 1. **配置SSL上下文**: 当访问HTTPS网址时,Java会检查服务器的SSL证书。如果证书不在受信任的证书...

    Java抓取https网页数据

    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请求工具类 支持SSL

    在Java编程中,HTTPS(Hypertext Transfer Protocol Secure)是一种基于HTTP的安全协议,它通过SSL/TLS(Secure Sockets Layer/Transport Layer Security)提供加密处理、服务器身份验证和消息完整性检查,以保护...

    java 发送https get请求工具类

    java 发送https get请求工具类

    java支持https的Post请求

    在Java编程环境中,进行HTTPS POST请求是常见的网络通信任务,特别是在需要安全传输敏感数据时,如用户登录信息或支付详情。HTTPS(HTTP over SSL/TLS)提供了加密和身份验证机制,确保了数据的隐私和完整性。本文将...

    Java发https请求证书问题

    ### Java 发送 HTTPS 请求时遇到证书问题解析 在进行网络通信的过程中,HTTPS 协议由于其安全性被广泛应用。本文将围绕“Java 发送 HTTPS 请求证书问题”这一主题展开讨论,通过对给定文件中的代码示例及操作步骤...

    java访问https网址下载文件(含证书)

    在Java编程中,访问HTTPS网址并下载文件是一个常见的任务,特别是在需要安全传输敏感数据或确保数据完整性时。这里我们将深入探讨如何使用Java 1.7版本处理这一过程,包括处理SSL证书。 首先,理解HTTPS(超文本...

    java http 和 https请求

    压缩包里包含http和https两种请求,第一个文件是http请求包含post和get两种方式,剩下的是https的请求,最后一个文件里包含https的post和get两种方式。中间的两个是post 和 get 分开写的,按照需要引用吧

    Java Https请求,跳过证书,直接访问

    在Java编程中,HTTPS(Hypertext Transfer Protocol Secure)是一种用于在互联网上安全传输数据的协议,它基于HTTP,但提供了额外的安全性层,通过SSL/TLS(Secure Sockets Layer/Transport Layer Security)来加密...

    Java实现的Https请求工具类

    在Java编程中,HTTPS(Hypertext Transfer Protocol Secure)是一种基于HTTP协议的安全通信协议,用于在客户端和服务器之间建立安全的、加密的数据传输通道。它主要用于保护用户数据,防止中间人攻击和数据篡改。本...

    java发送http/https请求(get/post)Demo,亲测可用

    在Java编程语言中,发送HTTP和HTTPS请求是常见的任务,特别是在开发Web服务客户端或进行API交互时。HTTP(超文本传输协议)和HTTPS(安全超文本传输协议)是用于在客户端和服务器之间交换数据的标准。这里我们将深入...

    JAVA利用HttpClient进行HTTPS接口调用

    在Java编程中,HttpClient是一个非常重要的库,常用于执行HTTP请求。当涉及到HTTPS接口调用时,HttpClient可以处理加密通信,确保数据传输的安全性。在这个主题中,我们将深入探讨如何在Java中使用HttpClient来实现...

    用java访问https网络,无需证书

    使用java写的访问https网络协议的网址,绕过了证书的验证

    java实现读取证书访问https接口

    在Java编程中,访问HTTPS(安全超文本传输协议)接口通常涉及到处理数字证书,这是为了确保数据传输的安全性。HTTPS通过使用SSL/TLS协议来加密通信,而证书是该协议的一部分,用于验证服务器的身份。本篇文章将深入...

    java发送https请求的例子

    java发送https请求的例子

    java代码中抓取http和https

    windows系统上的http和https抓包工具, fiddler是http https监控工具 如果要监控java程序,需要添加如下代码: System.setProperty("http.proxyHost", "127.0.0.1"); System.setProperty("http.proxyPort", "8888...

    http客户端java程序

    http客户端java程序,代码质量高,经过测试。

    java如何访问https

    如何利用Java调用Https的接口,并附有程序示例。

    ssl.tar.gz_URL HTTPS_https_https java_https ssl_java https

    Java提供了一个名为`java.net.URL`的类,用于处理URLs,同时`java.net.HttpURLConnection`类支持HTTP和HTTPS的连接。当使用`HttpURLConnection`创建一个HTTPS连接时,需要处理SSL上下文,如信任管理器和主机名验证。...

    (完整版)JAVA利用HttpClient进行POST请求(HTTPS).doc

    "JAVA利用HttpClient进行POST请求(HTTPS)" JAVA HttpClient是Apache软件基金会提供的一个开源实现HTTP客户端的Java库,能够帮助开发者轻松地与HTTP服务器进行交互。在实际项目中,我们经常需要使用HttpClient来发送...

Global site tag (gtag.js) - Google Analytics