使用Java 11中的新的HTTP/2 Client来发送HTTP请求并处理响应

2023年 8月 28日 82.8k 0

使用Java 11中的新的HTTP/2 Client来发送HTTP请求并处理响应

  • 引言随着Java 11的发布,Java引入了一个全新的HTTP/2 Client API来替代旧的HttpURLConnection和HttpClient。新的API提供了更简洁、更高效的方式来发送HTTP请求并处理响应。在本文中,我们将探索Java 11中的新的HTTP/2 Client API,包括如何发送GET请求、POST请求,以及如何处理响应。
  • 发送GET请求发送GET请求是最常见的HTTP操作之一。下面是一个使用Java 11中的新的HTTP/2 Client API发送GET请求的示例代码:
  • import java.net.URI;
    import java.net.http.HttpClient;
    import java.net.http.HttpRequest;
    import java.net.http.HttpResponse;

    public class HttpClientExample {
    public static void main(String[] args) throws Exception {
    // 创建一个HTTP/2 Client
    HttpClient client = HttpClient.newHttpClient();

    // 创建一个GET请求
    HttpRequest request = HttpRequest.newBuilder()
    .uri(URI.create("https://api.example.com/data"))
    .GET()
    .build();

    // 发送请求并处理响应
    HttpResponse response = client.send(request, HttpResponse.BodyHandlers.ofString());

    // 打印响应结果
    System.out.println("Response Code: " + response.statusCode());
    System.out.println("Response Body: " + response.body());
    }
    }

    登录后复制

    在上面的示例代码中,我们首先创建了一个HttpClient对象,然后创建了一个GET请求,并通过send()方法发送请求并返回一个HttpResponse对象。最后,我们可以通过HttpResponse对象获取响应的状态码和响应体。

  • 发送POST请求发送POST请求是另一个常见的HTTP操作。下面是一个使用Java 11中的新的HTTP/2 Client API发送POST请求的示例代码:
  • import java.net.URI;
    import java.net.http.HttpClient;
    import java.net.http.HttpRequest;
    import java.net.http.HttpResponse;
    import java.net.http.HttpHeaders;
    import java.net.http.HttpResponse.BodyHandlers;

    public class HttpClientExample {
    public static void main(String[] args) throws Exception {
    // 创建一个HTTP/2 Client
    HttpClient client = HttpClient.newHttpClient();

    // 创建一个POST请求
    HttpRequest request = HttpRequest.newBuilder()
    .uri(URI.create("https://api.example.com/data"))
    .header("Content-Type", "application/json")
    .POST(HttpRequest.BodyPublishers.ofString("{"key": "value"}"))
    .build();

    // 发送请求并处理响应
    HttpResponse response = client.send(request, HttpResponse.BodyHandlers.ofString());

    // 打印响应结果
    System.out.println("Response Code: " + response.statusCode());
    System.out.println("Response Body: " + response.body());
    }
    }

    登录后复制

    在上面的示例代码中,我们首先创建了一个HttpClient对象,然后创建了一个POST请求,并通过send()方法发送请求并返回一个HttpResponse对象。我们可以通过POST方法的参数指定请求体的内容,例如,这里我们发送了一个JSON字符串作为请求体。

  • 处理响应Java 11中的新的HTTP/2 Client API提供了多个方法来处理响应。在上面的示例代码中,我们使用了HttpResponse.BodyHandlers.ofString()来将响应体转换为字符串。除了ofString()之外,还有其他的BodyHandlers可以根据具体的响应内容类型来处理响应体,例如ofByteArray()、ofInputStream()等。
  • 除了处理响应体,我们还可以获取其他的响应信息,例如响应头、响应状态码等。下面是一些处理响应的示例代码:

    // 获取响应头
    HttpHeaders headers = response.headers();
    headers.map().forEach((k, v) -> System.out.println(k + ": " + v));

    // 获取响应状态码
    int statusCode = response.statusCode();

    // 判断响应是否成功
    if (statusCode == 200) {
    System.out.println("Request succeeded");
    } else {
    System.out.println("Request failed");
    }

    登录后复制

    以上代码展示了如何获取响应头、响应状态码,并根据状态码判断请求是否成功。

  • 总结通过本文,我们了解了如何使用Java 11中的新的HTTP/2 Client API来发送HTTP请求并处理响应。新的API提供了更简洁、更高效的方式来进行HTTP操作。希望本文对你理解和使用新的HTTP/2 Client API有所帮助。
  • 以上就是使用Java 11中的新的HTTP/2 Client来发送HTTP请求并处理响应的详细内容,更多请关注每日运维网(www.mryunwei.com)其它相关文章!

    相关文章

    JavaScript2024新功能:Object.groupBy、正则表达式v标志
    PHP trim 函数对多字节字符的使用和限制
    新函数 json_validate() 、randomizer 类扩展…20 个PHP 8.3 新特性全面解析
    使用HTMX为WordPress增效:如何在不使用复杂框架的情况下增强平台功能
    为React 19做准备:WordPress 6.6用户指南
    如何删除WordPress中的所有评论

    发布评论