Hutool 发送 HTTP 请求的几种常见写法
最简单的 GET 请求:
String result = HttpUtil.get("https://www.baidu.com");
带参数的 GET 请求:
// 方法1: 直接拼接URL参数
String result = HttpUtil.get("https://www.baidu.com?name=张三&age=18");// 方法2: 使用 HashMap 构建参数
HashMap<String, Object> params = new HashMap<>();
params.put("name", "张三");
params.put("age", "18");
String result = HttpUtil.get("https://www.baidu.com", params);
POST 请求:
// 简单POST
String result = HttpUtil.post("https://www.baidu.com", "body content");// 带表单参数的POST
HashMap<String, Object> params = new HashMap<>();
params.put("name", "张三");
params.put("age", "18");
String result = HttpUtil.post("https://www.baidu.com", params);
发送 JSON:
HashMap<String, Object> paramMap = new HashMap<>();
paramMap.put("name", "张三");
paramMap.put("age", 18);String result = HttpRequest.post("https://www.baidu.com").header("Content-Type", "application/json").body(JSONUtil.toJsonStr(paramMap)).execute().body();
高度自定义的请求:
HttpRequest request = HttpRequest.post("https://www.baidu.com").header("Authorization", "Bearer token123").header("Custom-Header", "value").timeout(20000) //超时时间20秒.form(params) //表单参数.cookie("sessionId", "abc123");HttpResponse response = request.execute();
String result = response.body();
int status = response.getStatus();
文件上传:
HashMap<String, Object> params = new HashMap<>();
params.put("file", FileUtil.file("path/file.jpg"));
String result = HttpUtil.post("https://www.baidu.com/upload", params);
处理响应:
HttpResponse response = HttpRequest.get("https://www.baidu.com").execute();
// 获取响应状态码
int status = response.getStatus();
// 获取响应头
String contentType = response.header("Content-Type");
// 获取响应体
String body = response.body();
// 获取Cookies
List<HttpCookie> cookies = response.getCookies();
设置代理:
HttpRequest.get("https://www.baidu.com").setProxy(new Proxy(Proxy.Type.HTTP, new InetSocketAddress("127.0.0.1", 8888))).execute();
请求建议:
- 建议在生产环境中设置合适的超时时间
- 对于大量请求,使用 HttpUtil.createGet() 或 HttpUtil.createPost() 预创建请求对象
- 处理响应时注意异常处理
- 如果需要复用连接,考虑使用 HttpUtil.createHttp() 创建客户端
错误处理示例:
try {HttpResponse response = HttpRequest.get("https://www.baidu.com").timeout(20000).execute();if (response.isOk()) {String result = response.body();// 处理正常响应}
} catch (HttpException e) {// 处理超时等网络异常e.printStackTrace();
} catch (Exception e) {// 处理其他异常e.printStackTrace();
}
相关文章:
Hutool 发送 HTTP 请求的几种常见写法
最简单的 GET 请求: String result HttpUtil.get("https://www.baidu.com");带参数的 GET 请求: // 方法1: 直接拼接URL参数 String result HttpUtil.get("https://www.baidu.com?name张三&age18");// 方法2: 使用 HashMap…...
【Linux】进度条
本文中,我们来写一个进度条。 本文大纲: 写一个命令行版的进度条。 1.回车换行 2.缓冲区问题(本文不深究) 2.1测试代码 3.写一个什么样的进度条? version1 version2 回车换行 这俩不是一个概念&…...
【zookeeper核心源码解析】第四课:客户端与服务端读写的io核心流程
系列文章目录 【zookeeper核心源码解析】第一课:zk启动类核心流程序列图 【zookeeper核心源码解析】第二课:俯瞰QuorumPeer启动核心流程,实现选举关键流程 【zookeeper核心源码解析】第三课:leader与follower何时开始同步&#…...
强化学习蘑菇书笔记
绪论 强化学习就是一个智能体在一个不确定的环境中最大化它的奖励。智能体在一个环境中获取某个状态后,做一个动作,也称为决策,在环境中执行这个决策以后,会有一个奖励。尽可能多地获得更多的奖励。 强化学习概述 强化学习与监…...
《机器学习》——线性回归模型
文章目录 线性回归模型简介一元线性回归模型多元线性回归模型误差项分析一元线性模型实例完整代码 多元线性模型实例完整代码 线性回归模型简介 线性回归是利用数理统计中回归分析,来确定两种或两种以上变量间相互依赖的定量关系的一种统计分析方法。 相关关系&…...
Linux(Centos 7.6)网卡信息没有了问题处理
1.问题现象 虚拟机打开后,使用ifconfig查看IP信息,虚拟机默认的网卡名称是ens33,ifconfig没有看到相关问题,远程连接工具Xshell也不能正常访问该虚拟机。 [rootnode1 ~]# ifconfig lo: flags73<UP,LOOPBACK,RUNNING> mtu…...
WEB攻防-通用漏洞-文件上传-js验证-MIME验证-user.ini-语言特征
目录 定义 1.前端验证 2.MIME验证 3.htaccess文件和.user. ini 4.对内容进行了过滤,做了内容检测 5.[ ]符号过滤 6.内容检测php [] {} ; 7.()也被过滤了 8.反引号也被过滤 9.文件头检测 定义 文件上传漏洞是指攻击者上传了一个可执行文件(如木马…...
mybatis-plus代码生成器
<!--mybatis-plus--><dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-boot-starter</artifactId><version>3.5.2</version></dependency><!--mybatis-plus-generator 生成器--><depende…...
12.24-12.28Mysql锁阅读笔记
1.Mysql的锁有哪些种类 全局锁, 通过flush tables with read lock 应用场景是全局备份,备份的时候如果有两个表,备份 先备份了用户表,然后用户了商品,再备份商品表 那么商品表库存减少了,然而用户表的育儿…...
支持最新 mysql9的workbench8.0.39 中文汉化教程来了
之前在 B 站上发布了 mysql8 workbench 汉化教程,一年多来帮助很多初学者解决了不熟悉英文的烦恼。 汉化视频可以访问: 2024最新版mysql8.0.39中文版mysql workbench汉化 中文升级 旧版汉化报错解决_哔哩哔哩_bilibili MySql Workbench汉化_哔哩哔哩_…...
golang连接jenkins构建build
1.安装jenkins依赖 go get github.com/bndr/gojenkins2.代码 import ("context""file/utils/logs""github.com/bndr/gojenkins""github.com/gin-gonic/gin""net/http""time" )// 接收单个静态文件上线参数 type…...
SCAU高程进阶题(自用)
18711 字符串去重 Description 一个完全由小写字母组成的长度为n的字符串,现在要求你去除所有重复的字母,并将剩下的字母按从小到大的次序输出。 如输入baaadccaab,输出abcd。 输入格式 第一行一个整数n,表示字符串长度(0<n&…...
基于STM32F103控制L298N驱动两相四线步进电机
文章目录 前言一、模块参数二、接口说明三、准备工作四、直流电机驱动引脚接线效果展示 五、两相四线步进电机驱动步进电机相关概念拍数驱动时序引脚接线效果展示 六、参考示例 前言 L298N 是一种常见的双 H 桥电机驱动模块,广泛用于驱动直流电机和步进电机。它基于…...
libreoffice在Windows和Linux环境的安装和结合Springboot使用教程
前言: 在公司做开发时,遇到一个需求,要求上传的文件有图片,也有word和pdf。预览信息时,既要求能水印展示出来,又要求能大图水印预览。思索许久,我决定采取全部打水印然后转成图片Base64&#x…...
前端开发 -- 自动回复机器人【附完整源码】
一:效果展示 本项目实现了一个简单的网页聊天界面,用户可以在输入框中输入消息,并点击发送按钮或按下回车键来发送消息。机器人会根据用户发送的消息内容,通过关键字匹配来生成自动回复。 二:源代码分享 <!DOCTYP…...
vue+echarts实现疫情折线图
效果: 代码: <<template><div><div id"left1" style "height:800px;width:100%"></div></div> </template><script> //疫情数据//export default {data() {return {data:{//疫情数据…...
服务器nfs文件共享
1. 配置 NFS 服务器(NFS Server) 在 Ubuntu/Debian 上: sudo apt update sudo apt install nfs-kernel-server在 CentOS/RHEL 上: sudo yum install nfs-utils1.2 创建共享目录 选择一个要共享的目录,并确保该目录的权限正确设置。例如,假设我们要共享 /srv/nfs 目录…...
基于Vue+SSM+SpringCloudAlibaba的科目课程管理系统
功能1:科目列表 功能2:条件查询 功能3:分页查询 功能4:excel批量导入 功能5:修改 功能6:删除...
vue3配置caddy作为静态服务器,在浏览器地址栏刷新出现404
vue3配置caddy作为静态服务器,在浏览器地址栏刷新出现404 1 情况描述2 原因3 配置 1 情况描述 在vue打包之后,形成dist文件,采用caddy作为静态资源服务器。在浏览器中输入域名时可以访问网站,但是,进过路由导航栏内部…...
深入理解委托:C# 编程中的强大工具
在面向对象编程中,委托(Delegate) 是一个非常强大且灵活的概念,特别是在 C# 编程语言中。它不仅仅是函数指针的替代品,还提供了更高层次的抽象,使得代码更加简洁、灵活和可维护。在这篇博客中,我…...
梦幻动漫魔法工坊参数调优指南:简单几步让生成效果更完美
梦幻动漫魔法工坊参数调优指南:简单几步让生成效果更完美 1. 为什么需要参数调优 动漫图像生成工具的效果很大程度上取决于参数设置。就像摄影师需要调整相机参数一样,合理设置生成参数能让你的动漫作品更加精美。梦幻动漫魔法工坊提供了多个可调参数&…...
Nomic-Embed-Text-V2-MoE企业内训:Java面试题中的算法与数据结构优化思路
Nomic-Embed-Text-V2-MoE企业内训:Java面试题中的算法与数据结构优化思路 1. 引言 最近在帮团队做技术内训,发现一个挺有意思的现象:大家准备Java面试,尤其是算法和数据结构部分,还是老一套——刷题海。LeetCode刷了…...
毕业设计新方式:8款AI工具让论文与代码不再困难
文章总结表格(工具排名对比) 工具名称 核心优势 aibiye 精准降AIGC率检测,适配知网/维普等平台 aicheck 专注文本AI痕迹识别,优化人类表达风格 askpaper 快速降AI痕迹,保留学术规范 秒篇 高效处理混AIGC内容&…...
项目实战:从零构建基于Miniedit与Floodlight的SDN可视化拓扑
1. 为什么需要SDN可视化工具? 刚接触软件定义网络(SDN)时,最让我头疼的就是命令行配置。记得第一次用Mininet创建拓扑,光是记住那些addHost、addSwitch命令就花了半天时间,更别提调试链路参数时频繁出现的报…...
Pixel Script Temple 后端开发实战:快速生成RESTful API接口代码
Pixel Script Temple 后端开发实战:快速生成RESTful API接口代码 1. 为什么我们需要代码生成工具 作为一名后端开发者,你是否经常陷入这样的困境:每次新项目启动,都要重复编写相似的控制器、服务层和模型代码?或者当…...
【2026年最新600套毕设项目分享】校园水电费管理微信小程序(30004)
有需要的同学,源代码和配套文档领取,加文章最下方的名片哦 一、项目演示 项目演示视频 二、资料介绍 完整源代码(前后端源代码SQL脚本)配套文档(LWPPT开题报告/任务书)远程调试控屏包运行一键启动项目&…...
vllm部署DeepSeek-R1-Distill-Qwen-1.5B:高并发推理性能评测教程
vllm部署DeepSeek-R1-Distill-Qwen-1.5B:高并发推理性能评测教程 1. 模型介绍与部署价值 DeepSeek-R1-Distill-Qwen-1.5B是DeepSeek团队基于Qwen2.5-Math-1.5B基础模型,通过知识蒸馏技术打造的轻量化版本。这个模型在保持强大能力的同时,专…...
深入解析Doom3.gpl数学库:向量、矩阵与四元数的高效实现
深入解析Doom3.gpl数学库:向量、矩阵与四元数的高效实现 【免费下载链接】doom3.gpl Doom 3 GPL source release 项目地址: https://gitcode.com/gh_mirrors/do/doom3.gpl Doom3.gpl作为经典游戏引擎的开源项目,其数学库为3D图形渲染、物理模拟和…...
华为元老许映童下周敲钟:思格新能开启招股:估值超100亿美元 高瓴是基石
雷递网 雷建平 4月8日思格新能源(上海)股份有限公司(简称:“思格新能”,股票代码:“06656”)今日开启招股,准备2026年4月16日在港交所上市。思格新能计划发售1357.39万股,…...
为机械臂视觉抓取铺路:在ROS Melodic环境下,一步步配置YOLOv5的Python和PyTorch依赖
为机械臂视觉抓取铺路:在ROS Melodic环境下配置YOLOv5的Python和PyTorch依赖 机械臂视觉抓取是当前工业自动化和机器人研究的热点领域,而YOLOv5作为目标检测的利器,能够为机械臂提供精准的物体定位信息。但在实际部署中,开发者常…...
