java中如何使用HttpClient调用接口

yizhihongxing

下面是关于如何在Java中使用HttpClient调用接口的完整攻略。

简介

HttpClient是一个开源的Java HTTP客户端库,它适用于处理HTTP请求和响应,并支持多种协议,如HTTP、HTTPS、FTP、UDP等。使用HttpClient可以方便、可靠地进行网络通信,是Java程序员进行HTTP请求的绝佳工具。

添加依赖

为了使用HttpClient,我们需要在项目中添加它的依赖。

如果你使用Maven构建项目,可以在pom.xml文件中添加以下依赖:

<dependency>
    <groupId>org.apache.httpcomponents</groupId>
    <artifactId>httpclient</artifactId>
    <version>4.5.13</version>
</dependency>

如果你使用Gradle构建项目,可以在build.gradle文件中添加以下依赖:

implementation 'org.apache.httpcomponents:httpclient:4.5.13'

发送GET请求

下面我们来介绍如何使用HttpClient发送GET请求。

import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;


public class HttpClientExample {

    public static void main(String[] args) throws IOException {
        CloseableHttpClient httpClient = HttpClients.createDefault();
        HttpGet httpGet = new HttpGet("https://www.baidu.com");
        CloseableHttpResponse httpResponse = httpClient.execute(httpGet);

        try {
            InputStream inputStream = httpResponse.getEntity().getContent();
            BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream));
            String line;
            while ((line = bufferedReader.readLine()) != null) {
                System.out.println(line);
            }

            EntityUtils.consume(httpResponse.getEntity());
        } finally {
            httpResponse.close();
        }
    }
}

这是一个简单的Java程序,它发送一个GET请求到https://www.baidu.com并打印响应的主体。让我们来看看程序是如何工作的:

  • 使用HttpClients.createDefault()方法创建一个默认的HttpClient实例。
  • 使用HttpGet类创建一个GET请求实例,并设置请求的URL。
  • 使用httpClient.execute()方法发送请求。这个方法返回一个HttpResponse实例,其中包含响应的状态码、头部和主体。
  • 从HttpResponse实例中获取响应的主体,并打印它。

发送POST请求

下面我们来介绍如何使用HttpClient发送POST请求。

import org.apache.http.HttpEntity;
import org.apache.http.client.config.RequestConfig;
import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.entity.ContentType;
import org.apache.http.entity.StringEntity;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.util.EntityUtils;

import java.io.IOException;

public class HttpPostExample {

    public static void main(String[] args) throws IOException {
        CloseableHttpClient httpClient = HttpClients.createDefault();

        String url = "http://httpbin.org/post";
        String body = "{\"name\": \"john\", \"age\": 30}";

        HttpPost httpPost = new HttpPost(url);

        StringEntity stringEntity = new StringEntity(body, ContentType.APPLICATION_JSON);
        httpPost.setEntity(stringEntity);

        RequestConfig config = RequestConfig.custom()
                .setConnectTimeout(5000)
                .setSocketTimeout(5000)
                .build();
        httpPost.setConfig(config);

        CloseableHttpResponse httpResponse = httpClient.execute(httpPost);

        try {
            HttpEntity entity = httpResponse.getEntity();
            String response = EntityUtils.toString(entity);
            System.out.println(response);
        } finally {
            httpResponse.close();
        }
    }
}

这个程序发送了一个POST请求到http://httpbin.org/post,包含一个JSON格式的请求主体。让我们看看它是如何工作的:

  • 使用HttpClients.createDefault()方法创建一个默认的HttpClient实例。
  • 定义请求的URL和请求主体。
  • 使用HttpPost类创建一个POST请求实例,并设置请求的URL。
  • 使用StringEntity类将请求主体添加到请求中。
  • 使用RequestConfig类设置请求的连接超时和套接字超时。
  • 使用httpClient.execute()方法发送请求。这个方法返回一个HttpResponse实例,其中包含响应的状态码、头部和主体。
  • 从HttpResponse实例中获取响应主体,并打印它。

结语

以上就是使用HttpClient发送HTTP请求的完整攻略,希望对你有所帮助!

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:java中如何使用HttpClient调用接口 - Python技术站

(0)
上一篇 2023年5月26日
下一篇 2023年5月26日

相关文章

  • java基于servlet的文件异步上传

    Java基于Servlet的文件异步上传是一种常见的Web开发技术,本文将详细讲解其完整攻略,包括前台页面设计、后端代码编写及实现文件上传效果的示例代码。 1. 前台页面设计 在前台设计中,需要使用HTML、JavaScript和CSS完成文件上传页面。其中,HTML中主要包括file组件、上传按钮、进度条等,JavaScript控制上传进度和上传结果,CS…

    Java 2023年5月19日
    00
  • springboot之配置双kafka全过程

    下面是Spring Boot配置双Kafka全过程的攻略: 1. 添加Kafka依赖 在pom.xml文件中添加以下Kafka依赖: <dependency> <groupId>org.springframework.kafka</groupId> <artifactId>spring-kafka</ar…

    Java 2023年5月20日
    00
  • SpringBoot开发存储服务器实现过程详解

    SpringBoot开发存储服务器实现过程详解 在 SpringBoot 中开发存储服务器可以方便地实现从文件上传到文件展示的全浏览器支持的存储方案。下面是如何使用 SpringBoot 来实现存储服务器的完整攻略: 第一步:创建 SpringBoot 项目 首先,在 IntelliJ IDEA 中创建一个空的 SpringBoot 项目。 第二步:添加文件…

    Java 2023年5月19日
    00
  • java实现字符串和数字转换工具

    Java实现字符串和数字转换工具 在Java开发中,字符串和数字类型的转换是一个常见的需求,本文将介绍Java如何实现字符串和数字类型的转换。 1. 将字符串转为数字类型 Java中有两种常用的将字符串转为数字类型的方法:parseInt()和parseDouble()。parseInt()方法可以将数字字符串转换为整数类型,而parseDouble()方法…

    Java 2023年5月26日
    00
  • 深层剖析java应用开发中MyBayis缓存

    针对“深层剖析java应用开发中MyBayis缓存”的完整攻略,我们可以从以下几个方面进行讲解: MyBatis缓存的概念:MyBatis缓存分为一级缓存和二级缓存。一级缓存是在SqlSession级别的缓存,是默认开启的,仅在同一SqlSession期间内有效。二级缓存是在SqlSessionFactory级别的缓存,生命周期只存在于一个会话期间中,也可以…

    Java 2023年5月20日
    00
  • java+jsp+struts2实现发送邮件功能

    要实现发送邮件功能,我们可以使用JavaMail API和javax.mail包。与此同时,如果使用Struts2框架,则可以方便地将邮件发送功能整合到应用程序中。以下是实现Java+JSP+Struts2发送邮件功能的完整攻略。 步骤1:添加依赖项和配置 首先,需要在pom.xml文件中添加JavaMail API和javax.mail的Maven依赖项。…

    Java 2023年5月20日
    00
  • Java中Vector与ArrayList的区别详解

    下面是Java中Vector与ArrayList的区别详解: Vector和ArrayList的定义与创建方式 Vector和ArrayList都是容器类,用于存储Java对象。 Vector和ArrayList都实现了List接口,因此二者有很多相似之处。 Vector和ArrayList的创建方式类似,可以通过new关键字创建,也可以使用Arrays.a…

    Java 2023年5月26日
    00
  • JavaWeb实现文件的上传与下载

    JavaWeb实现文件的上传与下载 文件上传的实现步骤 文件上传指的是将本地的文件信息上传到服务器中的指定目录。JavaWeb 中实现文件上传需要以下步骤: 创建表单,设置 enctype=”multipart/form-data” 属性,表示表单中包含文件上传的数据; 在服务器端获取上传的文件信息,通常使用 request.getPart() 方法获取上传…

    Java 2023年5月31日
    00
合作推广
合作推广
分享本页
返回顶部