HttpClient

HttpClient

HttpClient 是用于发送 HTTP 请求和处理响应的工具包,在不同的编程语言中都有对应的实现,下面为你分别介绍 Java 和 Python 中的 HttpClient。

特点
  • 功能丰富:支持多种 HTTP 方法(如 GET、POST、PUT、DELETE 等),能处理复杂的 HTTP 协议特性,像身份验证、代理设置、连接池管理等。
  • 高度可定制:用户可以根据自身需求定制请求的各个方面,如设置请求头、超时时间、编码方式等。
  • 稳定性高:经过大量的测试和实际应用验证,具备良好的稳定性和性能。
  • 简洁易用:提供了简单直观的方法来发送各种 HTTP 请求,代码编写简洁。
  • 自动处理多种情况:可以自动处理重定向、Cookie、SSL 验证等常见的 HTTP 相关问题。
  • 广泛应用:在 Python 社区中被广泛使用,有丰富的文档和社区支持。

Jar包

复制代码
<dependencies>
    <dependency>
        <groupId>org.apache.httpcomponents</groupId>
        <artifactId>httpclient</artifactId>
        <version>4.5.13</version> <!-- 正确版本号 -->
    </dependency>
</dependencies>

基本方法

  • HttpClients:是工厂类,用于创建不同配置的 HttpClient 实例。
  • HttpClient:是接口,定义了发送 HTTP 请求、处理响应的基本行为。
  • HttpGet:继承自 HttpRequestBase,用于创建 HTTP GET 请求,从服务器获取资源。
  • HttpPost:继承自 HttpRequestBase,用于创建 HTTP POST 请求,向服务器提交数据。
  • Closeable:是 Java 的一个接口,实现该接口的对象可调用 close() 方法释放资源。
  • CloseableHttpClient:实现了 HttpClientCloseable,是可关闭的 HTTP 客户端,可发送请求并处理响应。

示例

发送Get请求

java 复制代码
/**
     * HttpClient发送Get请求
     * @throws IOException
     */
    @Test
    public void HttpClientTestGet() throws IOException {
        //创建HttpClients的对象
        CloseableHttpClient httpClient = HttpClients.createDefault();

        //创建Http对象
        HttpGet httpGet = new HttpGet("http://localhost:8080/user/shop/status");

        //发送请求 接收响应结果
        CloseableHttpResponse response = httpClient.execute(httpGet);

        //获取浏览器状态码
        int httpcode=response.getStatusLine().getStatusCode();
        System.out.println("服务器状态码:"+httpcode);

        //获取响应体
        HttpEntity entity = response.getEntity();
        String s= EntityUtils.toString(entity);
        System.out.println(s);

        //关闭资源
        response.close();
        httpClient.close();
    }

发送Post请求

java 复制代码
 /**
     * HttpClient发送Post请求
     */
    @Test
    public void HttpClientTestPost() throws JSONException, IOException {
        //创建HttpClient
        CloseableHttpClient httpClient = HttpClients.createDefault();

        //创建Http对象
        HttpPost httpPost = new HttpPost("http://localhost:8080/admin/employee/login");

        //构造发送数据
        JSONObject jsonObject = new JSONObject();
        jsonObject.put("username","admin");
        jsonObject.put("password","123456");

        StringEntity entity = new StringEntity(jsonObject.toString());

        //设置编码个数
        entity.setContentEncoding("utf-8");
        //数据格式
        entity.setContentType("application/json");
        //写入数据
        httpPost.setEntity(entity);

        //发送请求
        CloseableHttpResponse response = httpClient.execute(httpPost);

        //解析返回数据
        int statusCode=response.getStatusLine().getStatusCode();
        System.out.println("服务器状态码:"+statusCode);

        //获取响应体
        HttpEntity responseEntity = response.getEntity();
        String s=EntityUtils.toString(responseEntity);
        System.out.println(s);
    }
相关推荐
天上掉下来个程小白18 天前
HttpClient-03.入门案例-发送POST方式请求
java·spring·httpclient·苍穹外卖
ps酷教程18 天前
OkHttp&HttpClient
okhttp·httpclient
逆风飞翔的小叔1 个月前
【微服务】java中http调用组件深入实战详解
okhttp·httpclient·resttemplate·http组件详解·httpclient详解
云水-禅心1 个月前
flutter的HTTP headers用法介绍
flutter·httpclient
csdn_aspnet3 个月前
C# .NetCore 使用 Flurl.Http 与 HttpClient 请求处理流式响应
c#·.netcore·httpclient·flurl.http
执檀月夜游4 个月前
HttpClientUtil 之 ApacheHttpClient 4.5.14替换 commons-httpclient 3.1
httpclient
疯一样的码农4 个月前
如何使用Apache HttpClient来执行GET、POST、PUT和DELETE请求
http·httpclient
疯一样的码农5 个月前
如何使用Apache HttpClient发送带有HTML表单数据的POST请求
java·apache·httpclient