当前位置: 首页 > news >正文

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:实现了 HttpClient 和 Closeable,是可关闭的 HTTP 客户端,可发送请求并处理响应。

示例

发送Get请求

/*** HttpClient发送Get请求* @throws IOException*/@Testpublic 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请求

 /*** HttpClient发送Post请求*/@Testpublic void HttpClientTestPost() throws JSONException, IOException {//创建HttpClientCloseableHttpClient 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);}

相关文章:

  • Vue3集成Element Plus完整指南:从安装到主题定制上
  • 【深度学习入门_NLP自然语言处理】序章
  • C++初阶-类和对象(中)
  • Scratch——第18课 列表接龙问题
  • deep-share开源浏览器扩展,用于分享 DeepSeek 对话,使用户能够将对话内容保存为图片或文本以便轻松分享
  • 2025第十六届蓝桥杯python B组满分题解(详细)
  • chmod,chown命令
  • 【Linux】vim配置----超详细
  • CTGAN 合成数据生成与验证脚本学习笔记
  • 从巅峰到谷底:搜狐的27年沉浮启示录
  • 清醒思考的艺术
  • 算法导论思考题
  • (二)mac中Grafana监控Linux上的MySQL(Mysqld_exporter)
  • 人机共跑,马拉松人型机器人同跑
  • 通信信号分类识别
  • ARM裸机开发——I.MX6U_汇编LED灯驱动
  • 数据分析师-Part1-职业介绍
  • java:单链表基础操作:插入、删除、移动节点
  • day1 python训练营
  • 箱线图(盒须图)QCPStatiBox
  • 人均300+的日料,是后厨拆开的预制料理包
  • 从南宋遗韵到海派风情,解码江南服饰美学基因
  • 寻女19年的“棉花糖爸爸”明将办团圆宴,大女儿:妹妹是片区销售主管
  • 在历史上遭到起诉的杀人动物记录中,为什么猪如此普遍?
  • 财政部关于六起地方政府隐性债务问责典型案例的通报
  • 擘画开放新篇 共筑合作之桥——中国银行上海市分行全力护航第八届进博会筹备工作