java中如何使用HttpClient调用接口

下面是关于如何在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中数字黑洞实现代码

    数字黑洞是指一个数字,如果把它各个位上的数字按照非升序排列得到一个新数,再按照非降序排列得到另一个新数,用第一个数减去第二个数得到的差,之后重复这个过程,最终会得到一个固定的数字6174,这个过程称为Kaprekar常数。 Java中可以通过以下实现代码来模拟这个过程: public static int kaprekar(int num) { int co…

    Java 2023年5月19日
    00
  • SpringBoot server.port配置原理详解

    请看下面的文本: SpringBoot server.port配置原理详解 在SpringBoot中,我们通过在application.properties配置文件或者application.yml配置文件中,可以轻松地配置应用的端口号(server.port)。但是很多人都不知道server.port的配置原理是什么,本攻略将介绍SpringBoot的se…

    Java 2023年6月2日
    00
  • Spring Boot启动过程完全解析(二)

    SpringBoot启动过程完全解析(二) 在上一篇文章中,我们介绍了Spring Boot的启动过程。本文将继续深入探讨Spring Boot的启动过程,并提供两个示例来演示如何使用Spring Boot。 1. Spring Boot的启动过程 Spring Boot的启动过程可以分为以下几个步骤: 加载Spring Boot的配置文件 创建Spring…

    Java 2023年5月14日
    00
  • 详解微信小程序开发用户授权登陆

    详解微信小程序开发用户授权登陆 微信小程序开发用户授权登陆是小程序中常见的功能之一,允许用户授权登录并获取用户信息。本攻略将详细介绍如何实现微信小程序用户授权登录,并提供示例代码供参考。 1. 开发者配置 在微信公众平台中注册小程序,并在开发者工具中创建小程序项目。在小程序管理后台中,开启“用户信息”权限,同时设置授权回调页面路径。 2. 获取用户权限 在小…

    Java 2023年5月30日
    00
  • Java读取数据库表(二)

    Java读取数据库表(二) application.properties db.driver.name=com.mysql.cj.jdbc.Driver db.url=jdbc:mysql://localhost:3306/easycrud?useUnicode=true&characterEncoding=utf8&serverTimezo…

    Java 2023年5月4日
    00
  • Struts2 S2-016漏洞修复总结

    Struts2 S2-016漏洞修复总结 概述 Struts2 S2-016是一种影响Struts框架的远程代码执行漏洞。攻击者可以通过构造恶意的OGNL表达式,在未经授权的情况下,远程执行任意代码。该漏洞影响Struts2版本2.0.0-2.3.15,2.3.16-2.3.28。 漏洞修复方法 确认是否受到漏洞影响 首先,需要确认目标服务器是否受到该漏洞的…

    Java 2023年5月20日
    00
  • java LeetCode刷题稍有难度的贪心构造算法

    Java LeetCode刷题稍有难度的贪心构造算法攻略 在LeetCode刷题过程中,贪心算法在构造类问题中经常发挥着非常强大的作用。本篇文章将介绍贪心构造算法的基本思想和常见的实现模式,并给出两个例题作为说明。 概述 贪心构造算法指的是在求解最优解的过程中,每一步都采取当前状态下最优的选择。该算法通常适用于满足贪心选择性质的问题中,即问题能够分解成若干个…

    Java 2023年5月26日
    00
  • Java Swing程序设计实战

    Java Swing程序设计实战攻略 Java Swing程序设计实战是Java界面开发的重要书籍,其中讲解了Swing界面组件的使用、事件处理、布局管理器等内容,并有大量的编程实例。攻略分为以下几个部分: 程序设计实践 掌握Swing组件的使用,如JLabel、JTextField、JComboBox等; 学会处理Swing组件的事件,如ActionEve…

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