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

实现http请求-hutool

hutool工具HttpUtil

使用hutool就能实现http请求,官方案例

// 最简单的HTTP请求,可以自动通过header等信息判断编码,不区分HTTP和HTTPS
String result1= HttpUtil.get("https://www.baidu.com");// 当无法识别页面编码的时候,可以自定义请求页面的编码
String result2= HttpUtil.get("https://www.baidu.com", CharsetUtil.CHARSET_UTF_8);//可以单独传入http参数,这样参数会自动做URL编码,拼接在URL中
HashMap<String, Object> paramMap = new HashMap<>();
paramMap.put("city", "北京");String result3= HttpUtil.get("https://www.baidu.com", paramMap);

我的场景:

get

需要Authorization和在地址栏上拼接上参数,比如http://aaa/bbb?ccc=3&ddd=1&eee=2,其中参数ccc,ddd,eee为参数,是需要拼接在url=http://aaa/bbb上的,即参数传参为param,发现我按照这个String result3= HttpUtil.get("http://aaa/bbb", paramMap);报异常说没有权限,因为没有带Authorization。但是发现使用HttpUtil.get之后带不了Authorization,
但是通过HttpUtil.createGet是可以的,但是得把http://aaa/bbb手动拼接上参数 urlExtend=http://aaa/bbb?ccc=3&ddd=1&eee=2

      // 发送GET请求String response = HttpUtil.createGet(urlExtend).header("Authorization", token).execute().body();

一般场景:

            json = HttpRequest.get(urlExtend).header("Authorization", token).timeout(25000).execute().body();

所以咱就是说?必须要把拼接好的url放进参数中请求?俺也不懂,

post

post请求方式一般是把参数放在post中
场景:使用form-data方式放在body中传参
【这个本身就有点奇怪,一般post直接使用json格式放在body中,这里使用form data格式放在body中,可能是因为参数少?】
同样url=http://aaa/bbb

              String result = HttpRequest.post(url).header("Authorization", token).header("Content-Type", "multipart/form-data").form("file", file).form("aaa", 111).form("bbb",222).form("ccc", 333)           .form("version", "MBL3.0").timeout(120000).execute().body();

一般场景:放在json中

String json = ...;
String result = HttpRequest.post(url).body(json).execute().body();

对json格式的一般处理:map转成json格式

HashMap<String, Object> map= new HashMap<>();
map.put("aaa", 111);
map.put("bbb", "222");
String result = HttpRequest.post(porUrl).body(JSONUtil.toJsonStr(map)).execute().body();
http://www.lryc.cn/news/224738.html

相关文章:

  • Ubuntu22.04 FTP 搭建以及挂载
  • Mac电脑Visio文件编辑查看软件推荐Visio Viewer for Mac
  • 【星海出品】flask (二) request替代VUE测试flask接口
  • Vue3路由配置
  • Harbor(V2.8+) 登录时报错 net/http: TLS handshake timeout
  • 【 云原生 | K8S 】kubectl 详解
  • 2011年03月24日 Go生态洞察:Gobs数据编码与Go的完美契合
  • Spring集成MyBatis(自定义类和xml配置文件两种形式)
  • Git系列之Git入门级(带你走进Git的世界)
  • GPU架构与计算入门指南
  • 功能测试转自动化测试好不好转型?
  • 微软surface laptop禁用触摸屏(win10、设备管理器)
  • 冒泡排序算法原理和代码实现,就是这么简单!
  • [工业自动化-6]:西门子S7-15xxx编程 - PLC系统硬件组成与架构
  • pinpoint监控tomcat应用,页面显示No data collected
  • 【左程云算法全讲4】前缀树、非比较排序
  • 微头条项目实战:新增RequestHeader注解
  • E云管家个微协议框架--新版本的利器
  • 百度上线“文心一言”付费版本,AI聊天机器人市场竞争加剧
  • 代码随想录算法训练营第四十七天丨 动态规划part10
  • 微前端:quankun
  • CSDN每日一题学习训练——Java版(克隆图、最接近的三数之和、求公式的值)
  • XOR Construction
  • K8S容器持续Terminating无法正常关闭(sider-car容器异常,微服务容器正常)
  • Spring 循环依赖
  • MySQL 8.0.13升级到8.0.35记录 .NET
  • flink udtaf 常年不能用
  • 路由汇总的四要点
  • HashMap存值、取值及哈希碰撞原理分析
  • 【SVN】