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

SpringBoot中HttpClient的学习

一、介绍

HttpClient是Apache Jakarta Common 下的子项目,可以用来提供高效的、最新的、功能丰富的支持 HTTP 协议的客户端编程工具包。 

HttpClient 是一个HTTP通信库、一个工具包,它只提供一个通用浏览器应用程序所期望的功能子集,与浏览器相比是没有界面的。

二、添加依赖

  <!--httpclient--><dependency><groupId>org.apache.httpcomponents</groupId><artifactId>httpclient</artifactId><version>4.5.14</version></dependency>

二、测试

我们先创建一个用于测试的实体类

package com.example.fastjsondemo.model;import lombok.Data;/*** @author qx* @date 2023/8/29* @des 测试的实体类*/
@Data
public class Map {private String status;private String info;private String infocode;private String province;private String city;private String adcode;private String rectangle;
}

测试Get请求

  /*** 测试get请求*/@Testvoid testGet() throws IOException {String url = "https://restapi.amap.com/v3/ip?key=0113a13c88697dcea6a445584d535837&ip=171.110.83.78";CloseableHttpClient client = HttpClients.createDefault();HttpGet httpGet = new HttpGet(url);CloseableHttpResponse response = client.execute(httpGet);if (response.getStatusLine().getStatusCode() == HttpStatus.SC_OK) {String json = EntityUtils.toString(response.getEntity());Map map = JSONObject.parseObject(json, Map.class);System.out.println(map);}}

执行Get请求输出:

Map(status=1, info=OK, infocode=10000, province=广西壮族自治区, city=梧州市, adcode=450400, rectangle=111.1604726,23.41005092;111.4408064,23.57943575)

测试Post请求

/*** 测试Post请求** @throws IOException*/@Testvoid testPost() throws IOException {CloseableHttpClient client = HttpClients.createDefault();String url = "https://restapi.amap.com/v3/ip";HttpPost httpPost = new HttpPost(url);// 参数设置List<NameValuePair> paramList = new ArrayList<>();paramList.add(new BasicNameValuePair("key", "0113a13c88697dcea6a445584d535837"));paramList.add(new BasicNameValuePair("ip", "171.110.83.78"));// 设置httpPost使用的参数httpPost.setEntity(new UrlEncodedFormEntity(paramList));// 执行CloseableHttpResponse response = client.execute(httpPost);if (response.getStatusLine().getStatusCode() == HttpStatus.SC_OK) {String json = EntityUtils.toString(response.getEntity());Map map = JSONObject.parseObject(json, Map.class);System.out.println(map);}}

执行Post请求输出

Map(status=1, info=OK, infocode=10000, province=广西壮族自治区, city=梧州市, adcode=450400, rectangle=111.1604726,23.41005092;111.4408064,23.57943575)

http://www.lryc.cn/news/150882.html

相关文章:

  • JVM-内存溢出的原因、CPU占满的原因
  • 如何做好银行统一报送系统UI设计
  • 988. 从叶结点开始的最小字符串
  • RealSense D455启动教程
  • docker与phpstudy两种方式部署wordpress 并 开启伪静态
  • 网站搭建最简化的引导操作 | 云服务器的购买选用 | 域名的选用 | 网站的上线和备案。
  • Spring Cloud Foundry上使用通配符模式匹配进行的安全绕过漏洞 CVE-2023-20873
  • 简述SpringMVC
  • vue竖向步骤条
  • java八股文面试[多线程]——Synchronized优化手段:锁膨胀、锁消除、锁粗化和自适应自旋锁
  • 【数据结构】队列---C语言版(详解!!!)
  • java:详解http模块request对象
  • 力扣20. 有效的括号
  • 用springboot+elasticserach7的demo,对比sider和百度ai的异同
  • Python的pymysql模块与MySQL数据库的互动:基础与实例
  • 滑动窗口实例1(长度最小的子数组)
  • EI、Scopus双检索| 2023年第四届自动化、机械与设计工程国际会议
  • 【混合时变参数系统参数估计算法】使用范数总和正则化和期望最大化的混合时变参数系统参数估计算法(Matlab代码实现)
  • vue的公共方法封装以及class高阶封装
  • OpenGL-入门-BMP像素图glReadPixels(1)实现读取屏幕中间的颜色和获取屏幕上鼠标点击位置的颜色
  • 斥资4亿,收购这家WLAN厂商,结果……
  • 【简单】2511. 最多可以摧毁的敌人城堡数目
  • Linux用一键安装包部署禅道(18.5版本)
  • 【2】openGL shader着色器分析三角形填色
  • mysql数据表Table is marked as crashed and should be repaired 的解决办法
  • 【Unity基础】1.项目搭建与视图编辑
  • C语言每日一练---Day(14)
  • 基于孔雀算法优化的BP神经网络(预测应用) - 附代码
  • 【小沐学Unity3d】3ds Max 骨骼动画制作(蒙皮修改器skin)
  • 【Latex】使用技能站:(三)使用 Vscode 配置 LaTeX