栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

【Java11 新特性】 HttpClient 使用

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

【Java11 新特性】 HttpClient 使用

目录
  • 简介
  • 同步
  • 异步
  • 结果

简介
  • HTTP 客户端是在 Java 11 中添加的。它可用于通过网络请求 HTTP 资源。它支持 HTTP/1.1和HTTP/2,包括同步和异步编程模型,将请求和响应主体作为反应流处理,并遵循熟悉的构建器模式。
同步
  • 代码
public static void main(String[] args) {
        
        // HttpClient client = HttpClient.newBuilder()
        //      .version(Version.HTTP_2)
        //      .followRedirects(Redirect.SAME_PROTOCOL)
        //      .proxy(ProxySelector.of(new InetSocketAddress("www-proxy.com", 8080)))
        //      .authenticator(Authenticator.getDefault())
        //      .build();
        
//        HttpRequest request = HttpRequest.newBuilder()
//                .uri(URI.create("http://openjdk.java.net/"))
//                .timeout(Duration.ofMinutes(1))
//                .header("Content-Type", "application/json")
//                .POST(HttpRequest.BodyPublishers.ofFile(Paths.get("file.json")))
//                .build();
		// 静态方法获取客户端HttpClient
        HttpClient httpClient = HttpClient.newHttpClient();
        // 静态方法创建
        HttpRequest request = HttpRequest.newBuilder(URI.create("http://xxx.xxx.xx.xx:xxxx/api/customer/v1/info/find_customer_info_list")).build();
        // 生成BodyHandler
        BodyHandler responseBodyHandler = HttpResponse.BodyHandlers.ofString();
        // 发送 得到HttpResponse
        try {
            HttpResponse response = httpClient.send(request, responseBodyHandler);
            String body = response.body();
            System.out.println(body);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
异步
  • 代码
public static void main(String[] args) {
        // 获取客户端HttpClient
        HttpClient httpClient = HttpClient.newHttpClient();
        // 生成HttpRequest
        HttpRequest request = HttpRequest.newBuilder(URI.create("http://xxx.xxx.xx.xx:xxxx/api/customer/v1/info/find_customer_info_list")).build();
        // 生成BodyHandler
        BodyHandler responseBodyHandler = HttpResponse.BodyHandlers.ofString();
        // 发送 得到HttpResponse
        try {
            CompletableFuture> responseAsync = httpClient.sendAsync(request, responseBodyHandler);
            HttpResponse response = responseAsync.get();
            String body = response.body();
            int i = response.statusCode();
            System.out.println(body);
            System.out.println("status: "+i);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
结果
{
  "code": 0,
  "data": [
    {
      "id": 3,
      "sender": "郭总",
      "phone": "133******89",
      "consignee": "郭林枝",
      "customer_name": "***科技开发有限公司",
      "delivery_address": "******园区同业路5号 内蒙古林科技 院内",
      "bank_name": "包头市支行",
      "bank_account": "1234567899874632120",
      "tax_number": "9136********492L"
    },
    {
      "id": 1,
      "sender": "陈工",
      "phone": "18******90",
      "consignee": "陈总",
      "customer_name": "****傲表计有限公司",
      "delivery_address": "******门基地",
      "bank_name": "杭州银行蒋村支行",
      "bank_account": "3301**************09",
      "tax_number": "9135*********4801L"
    }
  ],
  "msg": null
}
status: 200
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/666213.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号