`

java发送https请求

阅读更多
import java.net.*;
import java.io.*;
import java.security.*;
import javax.net.ssl.*;
import com.macfaq.io.*;

public class HTTPSClient {

  public static void main(String[] args) {

    if (args.length == 0) {
      System.out.println("Usage: java HTTPSClient2 host");
      return;
    }

    int port = 443; // default https port
    String host = args[0];

    try {
      SSLSocketFactory factory
       = (SSLSocketFactory) SSLSocketFactory.getDefault();

      SSLSocket socket = (SSLSocket) factory.createSocket(host, port);

      // enable all the suites
      String[] supported = socket.getSupportedCipherSuites();
      socket.setEnabledCipherSuites(supported);

      Writer out = new OutputStreamWriter(socket.getOutputStream());
      // https requires the full URL in the GET line
      out.write("GET http://" + host + "/ HTTP/1.1\r\n");
      out.write("Host: " + host + "\r\n");
      out.write("\r\n");
      out.flush();

      // read response
      BufferedReader in = new SafeBufferedReader(
        new InputStreamReader(socket.getInputStream()));

      // read the header
      String s;
      while (!(s = in.readLine()).equals("")) {
          System.out.println(s);
      }
      System.out.println();

      // read the length
      String contentLength = in.readLine();
      int length = Integer.MAX_VALUE;
      try {
        length = Integer.parseInt(contentLength.trim(), 16);
      }
      catch (NumberFormatException ex) {
        // This server doesn't send the content-length
        // in the first line of the response body
      }
      System.out.println(contentLength);

      int c;
      int i = 0;
      while ((c = in.read()) != -1 && i++ < length) {
        System.out.write(c);
      }

      System.out.println();
      out.close();
      in.close();
      socket.close();

    }
    catch (IOException ex) {
      System.err.println(ex);
    }

  }

}

   /**
   *   Java Network Programming, Third Edition
   *   By Elliotte Rusty Harold
   *   Third Edition October 2004
   *   ISBN: 0-596-00721-3
   */



分享到:
评论

相关推荐

    java 发送https 请求 证书

    当你需要在Java程序中发送HTTPS请求时,可能会遇到证书相关的问题,特别是当服务器使用自签名证书或者非标准CA签发的证书时。本文将详细讲解如何在Java中处理这类问题,以及如何使用httpUtils工具进行HTTPS请求。 ...

    java发送https请求的例子

    java发送https请求的例子

    Java发 Https请求工具类 支持SSL

    7. **HttpClient库**: Java内置的`HttpURLConnection`可以发送HTTPS请求,但更高级的库如Apache HttpClient提供了更多功能,如连接池、重试策略等,对于复杂的应用场景更加适用。 8. **HTTPS连接的建立**: 包括握手...

    Java发https请求证书问题

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

    java发送http/https请求(get/post)代码

    本文将详细讲解如何使用Java发送GET和POST请求,以及涉及的HTTPS安全连接。 首先,理解HTTP和HTTPS的区别至关重要。HTTP(超文本传输协议)是一种用于分发超媒体信息的应用层协议,而HTTPS(超文本传输安全协议)是...

    Java发送https请求代码实例

    Java发送HTTPS请求代码实例 Java发送HTTPS请求代码实例是Java编程语言中的一种常见的网络编程操作。HTTPS(Hypertext Transfer Protocol Secure)是一种安全的网络协议,用于在Internet上传输数据。Java发送HTTPS...

    java 发送https get请求工具类

    java 发送https get请求工具类

    Java实现的Https请求工具类

    本篇文章将深入探讨如何在Java中实现一个用于处理HTTPS请求的工具类。 首先,要实现HTTPS请求,我们需要导入Java的`java.net`和`javax.net.ssl`包,这两个包提供了处理网络连接和SSL/TLS安全协议的类。以下是一些...

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

    1. 客户端(如浏览器或Java应用程序)发起一个HTTPS请求。 2. 服务器发送其数字证书,包含公钥和证书颁发机构(CA)的信息。 3. 客户端验证服务器的证书,检查是否由受信任的CA签名,证书是否过期,以及域名是否匹配...

    Https请求工具类,Java实现http请求,https请求

    Https请求工具类,Java实现http请求,https请求 本篇文章将详细介绍如何使用Java语言实现Http和Https请求的工具类,包括如何建立Https连接、如何实现Post请求、如何处理SSL验证等内容。 在Java中,使用...

    Java Https工具类,Java Https Post请求

    - 在发送HTTPS请求时,可能会遇到网络问题、证书问题或SSL握手失败等异常,`HttpsUtils`应该包含适当的异常处理代码,如`try-catch`块。 6. **安全性考虑**: - 实际生产环境中,不应忽视证书验证,应正确配置...

    JAVA 发送http请求工具类

    在Java编程中,发送HTTP和HTTPS请求是常见的网络通信任务,尤其在开发Web服务客户端或者进行API测试时。本文将详细解析如何使用Java实现HTTP和HTTPS的GET与POST请求,并结合提供的类文件名称(HttpsHandler.java、...

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

    这里我们将深入探讨如何使用Java发送GET和POST请求,以及处理JSON数据。 首先,让我们关注GET请求。GET请求主要用于从服务器获取资源,其参数通常包含在URL中。在Java中,可以使用`HttpURLConnection`类或者第三方...

    http/https请求工具类

    // 提交方式 public static String REQUEST_METHOD_POST = "POST"; public static String REQUEST_METHOD_GET = "GET"; // 媒体类型 ...charset=utf-8"; public static String MIME_TYPE_XML = "application/xml;...

    声明式HTTP客户端API框架,让Java发送HTTP/HTTPS请求不再难

    声明式HTTP客户端API框架,让Java发送HTTP/HTTPS请求不再难。它比OkHttp和HttpClient更高层,是封装调用第三方restful api client接口的好帮手,是retrofit和feign之外另一个选择。通过在接口上声明注解的方式配置...

    java支持https的Post请求

    在Java编程环境中,进行HTTPS POST请求是常见的网络通信任务,特别是在需要...同时,`HttpURLConnection`提供了方便的接口来发送HTTPS POST请求。在实际开发中,应根据具体需求选择合适的方法,并始终注重网络安全。

    android客户端发送https请求

    6. **发起HTTPS请求**:现在HttpClient已经配置好,可以正常发送HTTPS请求了。例如,发送GET请求: ```java HttpGet request = new HttpGet(url); HttpResponse response = httpClient.execute(request); ``` 7...

    java开发https请求ssl不受信任问题解决方法

    Java 开发 HTTPS 请求 SSL 不受信任问题解决方法 在 Java 开发中,使用 HTTPS 请求时可能会遇到 SSL 不受信任的问题,这是因为 Java 的证书验证机制会检查目标服务器的证书是否合法,如果证书不合法或没有证书就会...

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

    在本文中,我们将详细介绍如何使用JAVA的HttpClient库来发送POST请求,以便与HTTPS服务器进行交互。首先,我们需要继承DefaultHttpClient类,以便自定义HttpClient的行为。然后,我们需要使用X509TrustManager来忽略...

Global site tag (gtag.js) - Google Analytics