位置: IT常识 - 正文

Http请求-hutool工具类的使用

编辑:rootadmin
Http请求-hutool工具类的使用 Http请求-hutool工具类的使用前言

推荐整理分享Http请求-hutool工具类的使用,希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:,内容如对您有帮助,希望把文章链接给更多的朋友!

在日常java后端开发的工作中经常会遇到后端发起HTTP请求的情况,这里可以使用一个简单的工具类。

官方网址:Http请求-HttpRequest (hutool.cn)

介绍

本质上,HttpUtil中的get和post工具方法都是HttpRequest对象的封装,因此如果想更加灵活操作Http请求,可以使用HttpRequest。

Http请求-HttpRequest的使用普通表单

我们以POST请求为例:

//链式构建请求 String result2 = HttpRequest.post("www.baidu.com") .header(Header.USER_AGENT, String.valueOf(ContentType.FORM_URLENCODED))//头信息,多个头信息多次调用此方法即可 .form("paramMap")//表单内容 .timeout(20000)//超时,毫秒 .execute().body(); Console.log(result2);

通过链式构建请求,我们可以很方便的指定Http头信息和表单信息,最后调用execute方法即可执行请求,返回HttpResponse对象。HttpResponse包含了服务器响应的一些信息,包括响应的内容和响应的头信息。通过调用body方法即可获取响应内容。

看到这里你可能就会有些疑问了,那这个==.header()==是什么呢? 里面的参数又是什么呢?该如何设置呢?别着急听我慢慢道来。

科普+学习

首先让我们到postman看看这些,下面就header的内容了,header顾名思义就是http的请求头。用于携带一些请求格式的定义信息。

Http请求-hutool工具类的使用

再让我们看看==Header.USER_AGENT, String.valueOf(ContentType.FORM_URLENCODED)==都是什么吧?

Header源码:

ContentType源码:

通过hutool的源码我们可以看到,Header的本质就是一个枚举类,而我们只是拿其中已经定义好的枚举值而已,而这些枚举值就是,我们常用的一些http的请求头所需要的参数。到这里你应该也明白了,ContentType.FORM_URLENCODED就是我们所需要携带的http请求头参数的值,hutool这里也只是将它封装为一个枚举类方便调用罢了

Restful请求String json = ...;String result2 = HttpRequest.post(url) .body(json) .execute().body();配置代理

如果代理无需账号密码,可以直接:

String result2 = HttpRequest.post(url) .setHttpProxy("127.0.0.1", 9080) .body(json) .execute().body();

如果需要自定其他类型代理或更多的项目,可以:

String result2 = HttpRequest.post(url) .setProxy(new Proxy(Proxy.Type.HTTP, new InetSocketAddress(host, port)) .body(json) .execute().body();

如果遇到https代理错误Proxy returns "HTTP/1.0 407 Proxy Authentication Required",可以尝试:

System.setProperty("jdk.http.auth.tunneling.disabledSchemes", "");Authenticator.setDefault( new Authenticator() { @Override public PasswordAuthentication getPasswordAuthentication() { return new PasswordAuthentication(authUser, authPassword.toCharArray()); } });其它自定义项

同样,我们通过HttpRequest可以很方便的做以下操作:

指定请求头自定义Cookie(cookie方法)指定是否keepAlive(keepAlive方法)指定表单内容(form方法)指定请求内容,比如rest请求指定JSON请求体(body方法)超时设置(timeout方法)指定代理(setProxy方法)指定SSL协议(setSSLProtocol)简单验证(basicAuth方法)Http响应-HttpResponse的使用介绍

HttpResponse是HttpRequest执行execute()方法后返回的一个对象,我们可以通过此对象获取服务端返回的:

Http状态码(getStatus方法)返回内容编码(contentEncoding方法)是否Gzip内容(isGzip方法)返回内容(body、bodyBytes、bodyStream方法)响应头信息(header方法)使用

此对象的使用非常简单,最常用的便是body方法,会返回字符串Http响应内容。如果想获取byte[]则调用bodyBytes即可。

获取响应状态码HttpResponse res = HttpRequest.post(url)..execute();Console.log(res.getStatus());获取响应头信息HttpResponse res = HttpRequest.post(url)..execute();//预定义的头信息Console.log(res.header(Header.CONTENT_ENCODING));//自定义头信息Console.log(res.header("Content-Disposition"));st(url)..execute();//预定义的头信息Console.log(res.header(Header.CONTENT_ENCODING));//自定义头信息Console.log(res.header("Content-Disposition"));
本文链接地址:https://www.jiuchutong.com/zhishi/284113.html 转载请保留说明!

上一篇:华为路由器怎么做普通密码Telnet认证(华为路由器怎么设置wifi密码)

下一篇:EasyExcel使用与步骤

  • beatsfitpro可以连电脑吗(beatsfitpro可以连苹果5S吗)

    beatsfitpro可以连电脑吗(beatsfitpro可以连苹果5S吗)

  • vivoy5s手机壳和哪个通用(vivoy5s手机壳和哪个型号一样)

    vivoy5s手机壳和哪个通用(vivoy5s手机壳和哪个型号一样)

  • qq里bz是什么意思(扣扣b是什么意思)

    qq里bz是什么意思(扣扣b是什么意思)

  • 微信读书每日一答点不开(微信读书每日一答必过方法)

    微信读书每日一答点不开(微信读书每日一答必过方法)

  • 抖音为什么说搜索为空(抖音为什么说搜不到人)

    抖音为什么说搜索为空(抖音为什么说搜不到人)

  • 算法具有五个特性,分别是(算法的五个重要特性有哪些)

    算法具有五个特性,分别是(算法的五个重要特性有哪些)

  • 闲鱼发布的东西不见了(闲鱼发布的东西多久能看到)

    闲鱼发布的东西不见了(闲鱼发布的东西多久能看到)

  • 互联网诞生在哪一年(互联网的产生是哪一年)

    互联网诞生在哪一年(互联网的产生是哪一年)

  • 计算机内存包括(计算机内存包括寄存器吗)

    计算机内存包括(计算机内存包括寄存器吗)

  • 手机四核和八核有什么区别(手机四核和八核速度能差多少)

    手机四核和八核有什么区别(手机四核和八核速度能差多少)

  • 带小键盘的笔记本电脑是多少寸(带小键盘的笔记本电脑推荐华为)

    带小键盘的笔记本电脑是多少寸(带小键盘的笔记本电脑推荐华为)

  • 拍立得已装相纸怎么过安检(拍立得已装相纸过地铁安检)

    拍立得已装相纸怎么过安检(拍立得已装相纸过地铁安检)

  • 华为mate10怎样设闹钟(华为Mate10怎样设置才能让手流畅?)

    华为mate10怎样设闹钟(华为Mate10怎样设置才能让手流畅?)

  • 拼多多个人旺旺id是什么(拼多多个人旺旺怎么关闭)

    拼多多个人旺旺id是什么(拼多多个人旺旺怎么关闭)

  • 手机怎么移除root(手机怎么移除U盘)

    手机怎么移除root(手机怎么移除U盘)

  • 爱奇艺怎么给好友开会员(爱奇艺怎么给好友发消息)

    爱奇艺怎么给好友开会员(爱奇艺怎么给好友发消息)

  • 闹钟响了怎么关(闹钟响了怎么关(不是手机闹钟))

    闹钟响了怎么关(闹钟响了怎么关(不是手机闹钟))

  • 快手怎么链接淘宝店铺(快手怎么连接淘宝卖货)

    快手怎么链接淘宝店铺(快手怎么连接淘宝卖货)

  • 荣耀畅玩7x内存卡插哪(华为荣耀畅玩7x内存)

    荣耀畅玩7x内存卡插哪(华为荣耀畅玩7x内存)

  • 快手仅作者粉丝可见怎么取消(快手仅作者粉丝可见怎么关)

    快手仅作者粉丝可见怎么取消(快手仅作者粉丝可见怎么关)

  • ipad下载爱奇艺要付费吗(ipad下载爱奇艺为什么是小屏幕)

    ipad下载爱奇艺要付费吗(ipad下载爱奇艺为什么是小屏幕)

  • 陌陌当日打招呼达上限怎么办(陌陌当日打招呼怎么关闭)

    陌陌当日打招呼达上限怎么办(陌陌当日打招呼怎么关闭)

  • oppo手机丢失如何定位(oppo手机丢失如何找回)

    oppo手机丢失如何定位(oppo手机丢失如何找回)

  • 微信拒绝接收别人消息如何设置(微信拒绝接收别人语音怎么设置)

    微信拒绝接收别人消息如何设置(微信拒绝接收别人语音怎么设置)

  • vue中引入图片的方法(vue3引入图片)

    vue中引入图片的方法(vue3引入图片)

  • 税收减免是否属于收入
  • 个体户开电子税务局流程
  • 吊车租赁有限公司
  • 实收资本在报表中怎么看
  • 自然人个税申报换电脑数据怎么合并
  • 市场运营部门工作职责
  • 增值税退税比例怎么算
  • 企业所得税营业税金及附加包括
  • 中小企业开业税务登记所需资料
  • 政策性搬迁损失赔偿标准
  • 赠与合同收税吗
  • 冲减管理费用是红字还是在贷方
  • 企业所得税扣除凭证
  • 股东贷款可以转给其他人吗
  • 一个订单只能申请一次退款吗
  • 怎么给个体户开电子发票
  • 案例分析关于拟建科学馆的请示报告
  • 所有利息收入都免税吗
  • 现金流量表的填制方法和构成
  • 工会经费怎么做账务处理
  • 企业所得税增值税完税证明
  • 预提材料运费怎么计算
  • 公司用库存商品怎么做账
  • 简易计税分包款进项税可以抵扣吗
  • 资本公积和盈余公积都是从企业的净利润中提取的
  • 营业外收入的账户结构
  • 应收账款坏账收回影响利润么
  • word2013压缩图片
  • 微软 Windows x64 仿真正式推出,只支持 Win11 ARM
  • 如何暂停win11更新
  • php 设计模式
  • 长期股权投资采用权益法核算
  • php内涵
  • 城建税教育费附加什么时候交
  • 领航ct
  • 母公司将子公司的资产负债和当期损益
  • web应用技术是什么
  • windowsserver2019产品密钥
  • mysqldump 导出数据
  • openfoam中文教程
  • 功能强大的php文件有哪些
  • php基本语句
  • 融资租赁后续会计处理
  • 外包人员的餐费可以全部扣除吗
  • 计提怎么理解
  • 建筑工地仓库管理流程
  • 空调能直接用水清洗不?
  • 成本核算需要哪些单据
  • 无法取得发票的成本能列支吗
  • 固定资产清理税务处理
  • 银行承兑汇票和贴现的区别
  • 开票航天信息要交年费吗
  • 会计已入账是什么意思
  • 个人经纪代理服务
  • 老板用公司的钱算挪用公款吗
  • windows8休眠如何唤醒
  • 如何配置samba配置文件
  • arch linux安装yay
  • 打开win七
  • linux命令pwd是什么意思
  • Linux系统配置网关
  • win1010586升级到最新
  • 打开 itunes
  • win7电脑桌面图标不见了右键也没用
  • 如何删除双系统中的linux系统
  • 微软2021年新系统
  • win8如何输入命令
  • win10搜索设置选项
  • dmg是啥文件
  • shell中创建文件
  • javascript创建对象
  • pip工具安装
  • 网页javascript错误
  • jquery如何解决跨域问题
  • shell脚本的实现
  • python数据分析入门教程
  • 装卸搬运服务是什么服务
  • 税务审理工作总结
  • 如何落实保密制度规定措施
  • 税务内控机制建设
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设