HttpClient 简单示例-程序员宅基地

技术标签: java  

 在Java中,使用Apache HttpClient库发起一个GET请求到指定网址的基本步骤如下:

maven依赖

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

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 org.apache.http.util.EntityUtils;

public class SimpleHttpClient {

    public static void main(String[] args) throws Exception {
        // 步骤1: 创建HttpClient实例
        CloseableHttpClient httpClient = HttpClients.createDefault();

        // 步骤2: 创建HttpGet请求
        String targetUrl = "http://example.com/api/data";
        HttpGet httpGet = new HttpGet(targetUrl);

        // 可选步骤3: 添加请求头 (例如,身份验证或内容类型)
        // httpGet.setHeader("Authorization", "Bearer your_token");
        
        // 步骤4: 执行请求
        try (CloseableHttpResponse response = httpClient.execute(httpGet)) {
            // 步骤5: 获取响应状态码
            int statusCode = response.getStatusLine().getStatusCode();
            if (statusCode == HttpStatus.SC_OK) {
                // 步骤6: 获取响应实体内容
                String content = EntityUtils.toString(response.getEntity());
                System.out.println("Response Content: " + content);
            } else {
                System.out.println("Error Code : " + statusCode);
            }
        }

        // 步骤7: 关闭HttpClient实例(推荐在finally块中确保关闭资源)
        // httpClient.close(); // 在try-with-resources语句中自动关闭
    }
}

post

import org.apache.http.HttpEntity;
import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpPost;
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 org.apache.http.entity.ContentType;

public class SimpleHttpClient {

    public static void main(String[] args) throws Exception {
        // 步骤1: 创建HttpClient实例
        CloseableHttpClient httpClient = HttpClients.createDefault();

        // 步骤2: 创建HttpPost请求
        String targetUrl = "http://example.com/api/data";
        HttpPost httpPost = new HttpPost(targetUrl);

        // 步骤3: 创建请求体(这里假设是JSON格式的数据)
        String jsonInputString = "{\"key1\":\"value1\", \"key2\":\"value2\"}";
        HttpEntity entity = new StringEntity(jsonInputString, ContentType.APPLICATION_JSON);

        // 步骤4: 设置HttpPost请求体
        httpPost.setEntity(entity);

        // 可选步骤5: 添加请求头,如Content-Type等
        httpPost.setHeader("Content-type", "application/json");

        // 步骤6: 执行请求
        try (CloseableHttpResponse response = httpClient.execute(httpPost)) {
            // 步骤7: 获取响应状态码
            int statusCode = response.getStatusLine().getStatusCode();
            if (statusCode == HttpStatus.SC_OK) {
                // 步骤8: 获取响应实体内容
                String content = EntityUtils.toString(response.getEntity());
                System.out.println("Response Content: " + content);
            } else {
                System.out.println("Error Code : " + statusCode);
            }
        }

        // 步骤9: 关闭HttpClient实例(推荐在try-with-resources语句中自动关闭)
        // httpClient.close(); // 在try-with-resources语句中自动关闭
    }
}

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/uiop5988110/article/details/137858998

智能推荐

人机交互在计算机科学中的作用,人机交互技术-程序员宅基地

文章浏览阅读909次。《人机交互技术》课程介绍人机交互(Human-Computer Interaction, HCI):是研究人、计算机以及它们间相互影响,通过计算机输入、输出设备,以有效的方式实现人与计算机对话的技术;用户界面是人与计算机之间传递、交换信息的媒介和对话接口,是计算机系统的重要组成部分。人机交互与用户界面是两个有着紧密联系而又不尽相同的概念。人机交互强调的是技术和模型,用户界面是计算机的关键组成部分。..._人机交互方式的作用

第3节 DOS命令详解_dos管道命令详解-程序员宅基地

文章浏览阅读3.2k次,点赞2次,收藏16次。在初步学习网络安全时,暂时了解DOS命令系统及常用命令,以形成一定的框架体系,后续学习中如需要再继续强化。_dos管道命令详解

视频教程-VB管理信息系统开发实战-其他-程序员宅基地

文章浏览阅读219次。VB管理信息系统开发实战 大学计算机科学与技术专业毕业,从事教育培训两年,程..._管理系统vb教学

React-StepPitGuide《React踩坑指南》- React基础知识-程序员宅基地

文章浏览阅读91次。React-StepPitGuide《React踩坑指南》十行代码九个警告八个错误竟然敢说七日精通六天学会五湖四海也不见如此三心二意之项目经理简直一等下流。自己总结的关于React学习心得,欢迎大家与我交流ReactGithub:TYRMarsgitbook经常出问题,所以迁到自建的站点了。React 基础知识React 版本..._react踩坑指南

常用的机器学习与深度学习算法简介_机器学习和深度学习算法-程序员宅基地

文章浏览阅读5.5k次,点赞7次,收藏63次。常用的机器学习与深度学习算法简介1、机器学习1.1 决策树与随机森林1.2 支持向量机(SVM)1.3 k-最近邻算法1.4 朴素贝叶斯分类器2、深度学习2.1 人工神经网络2.2 深度神经网络2.3 卷积神经网络2.4 循环神经网络2.5 自编码器1、机器学习1.1 决策树与随机森林决策树(Decision Tree)是一种将决策流程以树状结构清晰表示的机器学习方法,本质上是通过一系列规则对数据进行分类的过程。图1-决策树随机森林(Random Forest)是通过构建多个决策树对样本进行训_机器学习和深度学习算法

简述SpringAop以及拦截器和过滤器-程序员宅基地

文章浏览阅读95次。简述AOP是面向切面编程(Aspect-Oriented Programming)的简称。它不是一项技术,和平常说的OOP(Object-Oriented Programming)一样,它是一种编程思想。这里不再做更多的名词解释。上图:从这个丑陋的图中可以看出,利用AOP后,OOP的Objects 都可以只专注于自己的事情,而不需要去管用户是否登录以及记录本次操作日志的事情了。 而且关..._adaptinterceptor(

随便推点

形式语义学-JLU-ZHH_形式语义学 入门-程序员宅基地

文章浏览阅读1.8k次。_形式语义学 入门

Web前端知识复习(HTML,CSS,JavaScript)_内容标题是html文档中的文本元素吗-程序员宅基地

文章浏览阅读1.2k次。HTML一、HTML概述1、HTML是一种描述性标记语言,用来描述页面内容的显示方式,如:文字、视频、音频程序等复杂元素。2、HTML文件是一种纯文本文件,以“.html”或“.htm”为后缀。3、HTML的基本组成单位是元素。4、HTML文档结构是由<html>、<head>和<body>这三大元素组成:1)<html>元素..._内容标题是html文档中的文本元素吗

docker容器Exited(137)状态,用docker exec无法直接进_docker 137-程序员宅基地

文章浏览阅读733次。Exited(137),docker exec -it 容器名 /bin/bash 无法进入_docker 137

Iterator迭代器_iterator迭代器详解-程序员宅基地

文章浏览阅读2.3k次,点赞4次,收藏27次。java迭代器Iterator讲解_iterator迭代器详解

微信分享链接网页下载的无法打开解决方案,微信跳转外部浏览器_微信转网页下载的文件打不开-程序员宅基地

文章浏览阅读1k次。由于微信引流具备快速性和高效的二次传播性,故众多商家纷纷选择微信推广为主要的推广方式。但在使用微信分享链接和营销方案的过程中经常会遇到分享链接在微信内被拦截从而无法打开或者打开后无法下载文件的情况,导致引流来的用户由于无法打开网页而选择流失。更过分的是,由于都是新用户,故用户即使知道链接无法打开也不会选择反馈,导致问题处理的不及时,错失很多流量。问题分析那么当我们在微信内遇到被拦截的问..._微信转网页下载的文件打不开

前端工程化-husky+commitizen+ 自定义cz-customizable适配器 git 提交代码规范化-程序员宅基地

文章浏览阅读4.1k次。1、使用husky添加git hooks(基于husky新版6.0.0进行git hooks)1、npm install -D husky2、创建.husky/目录并指定该目录为git hooks所在的目录3、在package.json中添加prepare脚本4、执行npm run prepare,本地会创建.husky目录5、添加git hooks创建一条 pre-commit hooknpx husky add .husky/pre-commit "npm run test"会在._cz-customizable

推荐文章

热门文章

相关标签