位置: 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使用与步骤

  • 博客是如何帮助企业获得口碑和声誉的(博客是如何帮助客户的)

    博客是如何帮助企业获得口碑和声誉的(博客是如何帮助客户的)

  • qq隐身访问空间对方还能看到吗(qq隐身访问空间看相册会有记录吗)

    qq隐身访问空间对方还能看到吗(qq隐身访问空间看相册会有记录吗)

  • 华为p40有没有4G版本呢(华为P40有没有无线充电)

    华为p40有没有4G版本呢(华为P40有没有无线充电)

  • 苹果手机大于150m怎么下载(苹果手机大于150w充电器)

    苹果手机大于150m怎么下载(苹果手机大于150w充电器)

  • 怎么抽抖音发字(抖音发字怎么得)

    怎么抽抖音发字(抖音发字怎么得)

  • 微信视频功能关闭不了怎么办(微信视频功能关闭)

    微信视频功能关闭不了怎么办(微信视频功能关闭)

  • 多线盘和总线盘的区别(消防控制柜多线盘和总线盘)

    多线盘和总线盘的区别(消防控制柜多线盘和总线盘)

  • qq号有几位数(qq号几位数与年限)

    qq号有几位数(qq号几位数与年限)

  • 打印机灰度开关什么意思(打印机灰度开是什么意思)

    打印机灰度开关什么意思(打印机灰度开是什么意思)

  • 淘宝app闲鱼在哪里(淘宝网闲鱼在哪里)

    淘宝app闲鱼在哪里(淘宝网闲鱼在哪里)

  • 域名icp备案要多久(icp备案 域名备案区别)

    域名icp备案要多久(icp备案 域名备案区别)

  • 怎么取消word行号(怎么取消word行首的点)

    怎么取消word行号(怎么取消word行首的点)

  • iphonexsmax怎么激活(苹果xsmas怎么激活)

    iphonexsmax怎么激活(苹果xsmas怎么激活)

  • 三级域名网站有哪些(三级域名有哪些)

    三级域名网站有哪些(三级域名有哪些)

  • 京东评价过滤掉的原因(京东评价评错了,删不掉,还有什么办法补救)

    京东评价过滤掉的原因(京东评价评错了,删不掉,还有什么办法补救)

  • 书旗怎么解除自动续费(怎么解除书旗会员)

    书旗怎么解除自动续费(怎么解除书旗会员)

  • 如何将文件保存到桌面(如何将文件保存到桌面电脑)

    如何将文件保存到桌面(如何将文件保存到桌面电脑)

  • 卡西欧反显什么意思(卡西欧反显能改正显吗)

    卡西欧反显什么意思(卡西欧反显能改正显吗)

  • 苹果8p没信号无服务怎么回事(苹果8p没信号无法开机)

    苹果8p没信号无服务怎么回事(苹果8p没信号无法开机)

  • 小米智能手表什么时候发布(小米智能手表什么用)

    小米智能手表什么时候发布(小米智能手表什么用)

  • 乐视手机怎样强制恢复出厂设置(乐视手机怎样强行卸载应用)

    乐视手机怎样强制恢复出厂设置(乐视手机怎样强行卸载应用)

  • 淘宝新书拆封了可以换吗(新书拆封了还能退吗)

    淘宝新书拆封了可以换吗(新书拆封了还能退吗)

  • 苹果iphone11能防水吗(iphone11防窥屏哪里设置)

    苹果iphone11能防水吗(iphone11防窥屏哪里设置)

  • 苹果手机换主板和原装的区别(苹果手机换主板面容还能用吗)

    苹果手机换主板和原装的区别(苹果手机换主板面容还能用吗)

  • 应交增值税月末出现借方余额怎么处理
  • 报税残疾人保障费怎么算
  • 工程项目纳税
  • 我国的税种有哪些种类
  • 股权分配利润应该怎么做账
  • 建筑公司购入的水泥等材料如果是做成本的怎么做分录
  • 分公司预缴企业所得税怎么算
  • 先报税还是先清卡反写
  • 税控设备抵减增值税必须当月抵减吗
  • 资产重组的税务筹划
  • 应扣未扣税款向谁追缴
  • 员工参加公司活动的好处
  • 工企业用地土地使用税怎么征收?
  • 房地产企业交房时如何开票
  • 季节性停工损失属于期间费用吗
  • 为什么要预提企业收入
  • 一般纳税人开技术服务费
  • 营改增后填用作废的发票可以用来报销吗?
  • 服务协议属于哪类合同
  • 无法读取金税盘时间版本怎么解决
  • 公司合作建房什么意思
  • 公司购买床垫怎样入账
  • 10万以下免征增值税 文件
  • 新固定资产的六大类型
  • 如何找回windows密钥
  • 在win7系统中,添加打印机驱动程序
  • linux中不能使用的shell
  • 上市公司股票如何套现
  • 阻止电脑系统更新设置在哪
  • 合作社实际没有自产自销,但税务方面怎么可以提供证明
  • php实现功能
  • yifile怎么使用
  • php零基础入门
  • php超强防cc页面
  • kaggle如何入门
  • php编程计算日期怎么算
  • axios.interceptors.request.use简介
  • yii2框架中文手册
  • 知识图谱实现方案
  • 电脑培训网络教学
  • 研发的无形资产
  • 个税网上申报流程视频
  • javascrapt
  • 合同没有约定发票税点谁承担怎么办
  • 公司食堂开支如何记账
  • 织梦如何使用
  • 借款合同按什么缴纳印花税
  • python Timer定时器如何使用?
  • 企业所得税的会计处理怎么做
  • 服装类发票可以抵扣哪些
  • 入股资金打入公司账户
  • 企业按季度交税
  • 记账错误是什么意思
  • 公司健身器材使用制度
  • 企业做税务局迁移应该做哪些事情
  • 小规模纳税人所得税怎么计算
  • 跨年度退货
  • 红字发票的开具需要把开始的发票取回作废吗?
  • 周转材料包装物的账务处理
  • 税控盘的主要功能
  • 免税收入怎么申报增值税
  • 工会经费不够
  • 残保金怎么办理
  • sql查询一条数据
  • win8系统教程
  • linux chkdsk
  • fan.error是什么意思
  • win7为什么不能设置滑动关机
  • win7旗舰版更改适配器没有蓝牙连接
  • windows7输入
  • Win8.1 32位和64位有什么区别 Win8.1 32位和64区别详细介绍
  • 不错的mod_perl编程的简单应用实例介绍
  • 使用脚本什么意思
  • jquery的方法有哪些
  • 简单的jquery插件实例
  • 河南省发票查询真伪查询系统
  • 申请税务增票怎么写
  • 湖北税务发票查询系统网
  • 未开票收入下月开票会计分录
  • 淮北税务局领导简介
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设