Java HttpClient 实战 GET 与 POST 请求一网打尽

这篇具有很好参考价值的文章主要介绍了Java HttpClient 实战 GET 与 POST 请求一网打尽。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

使用Java HttpClient 进行HTTP请求

在Java中,HttpClient是进行HTTP通信的一个强大工具。它提供了简单而灵活的API,可以轻松地发送HTTP请求并处理响应。在本篇博文中,我们将深入探讨如何使用HttpClient执行GET、POST等不同类型的HTTP请求。

1. 引入依赖

首先,确保在项目的pom.xml文件中引入HttpClient的依赖:

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

2. 执行GET请求

让我们从一个简单的GET请求开始。假设我们要获取 https://jsonplaceholder.typicode.com/todos/1 这个API的数据。

import org.apache.http.HttpResponse;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.HttpClientBuilder;
import java.io.BufferedReader;
import java.io.InputStreamReader;

public class GetExample {

    public static void main(String[] args) {
        try {
            // 创建HttpClient实例
            HttpClient httpClient = HttpClientBuilder.create().build();

            // 创建GET请求
            HttpGet request = new HttpGet("https://jsonplaceholder.typicode.com/todos/1");

            // 发送请求并获取响应
            HttpResponse response = httpClient.execute(request);

            // 读取响应内容
            BufferedReader reader = new BufferedReader(new InputStreamReader(response.getEntity().getContent()));
            String line;
            StringBuilder result = new StringBuilder();
            while ((line = reader.readLine()) != null) {
                result.append(line);
            }

            // 打印响应内容
            System.out.println("Response: " + result.toString());
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

这段代码创建了一个HttpClient实例,然后使用HttpGet构建了一个GET请求,并发送请求获取响应。响应的内容通过BufferedReader逐行读取并打印出来。

3. 执行POST请求

接下来,让我们看看如何执行一个简单的POST请求。假设我们要向 https://jsonplaceholder.typicode.com/posts 发送一个包含JSON数据的POST请求。

import org.apache.http.HttpResponse;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.entity.StringEntity;
import org.apache.http.impl.client.HttpClientBuilder;
import java.io.BufferedReader;
import java.io.InputStreamReader;

public class PostExample {

    public static void main(String[] args) {
        try {
            // 创建HttpClient实例
            HttpClient httpClient = HttpClientBuilder.create().build();

            // 创建POST请求
            HttpPost request = new HttpPost("https://jsonplaceholder.typicode.com/posts");

            // 添加请求头
            request.addHeader("Content-Type", "application/json");

            // 添加请求体(JSON数据)
            String jsonBody = "{\"title\":\"foo\",\"body\":\"bar\",\"userId\":1}";
            request.setEntity(new StringEntity(jsonBody));

            // 发送请求并获取响应
            HttpResponse response = httpClient.execute(request);

            // 读取响应内容
            BufferedReader reader = new BufferedReader(new InputStreamReader(response.getEntity().getContent()));
            String line;
            StringBuilder result = new StringBuilder();
            while ((line = reader.readLine()) != null) {
                result.append(line);
            }

            // 打印响应内容
            System.out.println("Response: " + result.toString());
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

这段代码使用HttpPost构建了一个POST请求,并通过StringEntity设置了请求体的内容。同样,发送请求并获取响应后,通过BufferedReader读取响应内容并打印出来。

结语

通过本文,我们深入了解了如何使用Java的HttpClient库执行GET和POST请求。这只是HttpClient功能的冰山一角,你可以根据实际需求使用更多功能,例如处理响应状态、处理重定向、设置超时等。

希望这篇博文能帮助你更好地利用Java进行HTTP通信。如果有任何问题或建议,请随时留言。Happy coding! 🚀文章来源地址https://www.toymoban.com/news/detail-797986.html

到了这里,关于Java HttpClient 实战 GET 与 POST 请求一网打尽的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【MongoDB-Redis-MySQL-Elasticsearch-Kibana-RabbitMQ-MinIO】Java全栈开发软件一网打尽

    前言 全栈开发是一项复杂而令人兴奋的任务,涵盖了从前端到后端、数据库到可视化层、消息队列到文件存储的广泛领域。本文将带您深入探讨在Windows环境下进行全栈开发的过程,涵盖了Java全栈开发所需的关键技术和工具。无论您是初学者还是经验丰富的开发人员,本文都

    2024年02月05日
    浏览(47)
  • C++常见容器一网打尽

    C++容器属于STL(标准模板库)中的一部分(六大组件之一),从字面意思理解,生活中的容器用来存放(容纳)水或者食物,东西,而C++中的容器用来存放各种各样的数据,不同的容器具有不同的特性,下图(思维导图)中列举除了常见的几种C++容器,而这部分C++的容器与

    2024年01月17日
    浏览(41)
  • ANR 触发、监控、分析 一网打尽

    平时看博客或者学知识,学到的东西比较零散,没有独立的知识模块概念,而且学了之后很容易忘。于是我建立了一个自己的笔记仓库 (一个我长期维护的笔记仓库,感兴趣的可以点个star~你的star是我写作的巨大大大大的动力),将平时学到的东西都归类然后放里面,需要的时

    2023年04月20日
    浏览(37)
  • 【Selenium】一网打尽 小窗口滑动 & 全窗口滑动

    收到小伙伴私信,如果web页面中含有小页面,该怎样使用Selenium去滑动小页面,这里总结记录一下。 都是JavaScript的知识~~ 方法 释义 window.scrollBy(x,y) 滑动指定的x和y的距离 document.body.scrollHeight 元素内容高度的度量 document.querySelector() 根据指定选择器查找元素 getElementById() 根据

    2024年02月06日
    浏览(39)
  • GitLab入门指南:上传与下载操作一网打尽

    GitLab是一个基于Git的开源仓库管理系统,提供了一个Web界面的Git存储库管理器,并集成了多种开发工具的功能,如代码审查、问题跟踪、持续集成和持续部署等。GitLab可以在本地服务器上部署,也可以使用其提供的云服务。它广泛应用于软件开发团队,帮助团队成员协作开发

    2024年01月25日
    浏览(48)
  • 动态规划系列 | 最长上升子序列模型(下)| 拦截导弹一网打尽!

    题目描述 某国为了防御敌国的导弹袭击,发展出一种导弹拦截系统。 但是这种导弹拦截系统有一个缺陷:虽然它的第一发炮弹能够到达任意的高度,但是以后每一发炮弹都不能高于前一发的高度。 某天,雷达捕捉到敌国的导弹来袭。 由于该系统还在试用阶段,所以只有一套

    2024年02月03日
    浏览(48)
  • MQTT 持久会话 vs. Clean Session内幕一网打尽

    不稳定的网络 有限的硬件资源 物联网应用两大难题,MQTT 客户端与服务器的连接可能随时因网络波动及资源限制而异常断开。为解决网络连接断开对通信造成的影响,MQTT 协议提供持久会话功能。 MQTT 客户端在发起到服务器的连接时,可设置是否创建一个持久会话。持久会话

    2024年02月03日
    浏览(42)
  • C++回调函数精解:基础使用和高级技巧一网打尽

      概述: C++回调函数提供了灵活的编程方式。基础使用演示了如何定义和调用简单的回调,而高级使用则展示了返回值非 `void` 的回调和Lambda表达式的灵活性。这种机制使程序更模块化、可维护。 在C++中,回调函数可以用于实现基础和高级的功能。以下是一个包含基础和高级

    2024年03月18日
    浏览(53)
  • Git新手?这篇文章带你飞!基础操作一网打尽!

    智能化校园:深入探讨云端管理系统设计与实现(一) 智能化校园:深入探讨云端管理系统设计与实现(二) Git(读音为/gɪt/) 是一个开源的分布式版本控制系统,可以有效、高速地处理从很小到非常大的项目版本管理。 git是世界上最先进的分布式版本控制系统(没有之一)

    2024年01月17日
    浏览(41)
  • Python虚拟环境(pipenv、venv、conda一网打尽)[通俗易懂]

    1. 什么是Python环境 要搞清楚什么是虚拟环境,首先要清楚Python的环境指的是什么。当我们在执行python test.py时,思考如下问题: python哪里来?这个主要归功于配置的系统环境变量 PATH ,当我们在命令行中运行程序时,系统会根据 PATH 配置的路径列表依次查寻是否有可执行文件

    2024年02月08日
    浏览(41)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包