Java版Http请求post和get两种调用实现
在实际项目中常涉及到相互调用,对于http接口的调用,需要经过建立连接,拼接参数,调用等步骤,记录下来,方便查看。
第一步、引入jar包
pom中引入apache的httpclient包
<dependency><groupId>commons-httpclient</groupId><artifactId>commons-httpclient</artifactId><version>3.1</version>
</dependency>
第二步、实现逻辑
http调用分为post和get两种方式,两者的流程一致,主要区别在于创建自己的对象。
(1)post调用方式
1)创建HttpClient实例对象
2)httpClient连接主机服务器
3)创建post请求方法实例对象
4)设置post请求超时时间
5)创建参数对象,并进行赋值操作;
6)执行post方法
7)获取返回结果,并释放连接
import java.io.IOException;
import org.apache.commons.httpclient.HttpClient;
import org.apache.commons.httpclient.HttpException;
import org.apache.commons.httpclient.methods.PostMethod;
import org.apache.commons.httpclient.params.HttpClientParams;
import org.apache.commons.httpclient.params.HttpMethodParams;public class HttpClientUtil {public static String sendPost(String urlParam) throws HttpException, IOException {// 创建实例对象HttpClient httpClient = new HttpClient();// 设置httpClient连接主机服务器超时时间:15000毫秒httpClient.getHttpConnectionManager().getParams().setConnectionTimeout(15000);// 创建post请求方法实例对象PostMethod postMethod = new PostMethod(urlParam);// 设置post请求超时时间postMethod.getParams().setParameter(HttpMethodParams.SO_TIMEOUT, 60000);// 请求头postMethod.addRequestHeader("Content-Type", "application/json");// 创建参数对象HttpClientParams params = new HttpClientParams();params.setParameter("user_name", "Tom");params.setParameter("age", 20);httpClient.setParams(params);// 执行方法httpClient.executeMethod(postMethod);// 获取返回结果String result = postMethod.getResponseBodyAsString();// 释放连接postMethod.releaseConnection();return result;}
}
(2)get调用方式
1)创建HttpClient实例对象
2)httpClient连接主机服务器
3)创建get请求方法实例对象
4)设置post请求超时时间
5)创建参数对象,并进行赋值操作;
6)执行get方法
7)获取返回结果,并释放连接
import java.io.IOException;
import org.apache.commons.httpclient.HttpClient;
import org.apache.commons.httpclient.HttpException;
import org.apache.commons.httpclient.methods.GetMethod;
import org.apache.commons.httpclient.params.HttpClientParams;
import org.apache.commons.httpclient.params.HttpMethodParams;
public static String sendGet(String urlParam) throws HttpException, IOException {// 创建httpClient实例对象HttpClient httpClient = new HttpClient();// 设置httpClient连接主机服务器超时时间:15000毫秒httpClient.getHttpConnectionManager().getParams().setConnectionTimeout(15000);// 创建GET请求方法实例对象GetMethod getMethod = new GetMethod(urlParam);// 设置post请求超时时间getMethod.getParams().setParameter(HttpMethodParams.SO_TIMEOUT, 60000);getMethod.addRequestHeader("Content-Type", "application/json");// 创建参数对象HttpClientParams params = new HttpClientParams();params.setParameter("user_name", "Tom");params.setParameter("age", 20);httpClient.setParams(params);// 执行方法httpClient.executeMethod(getMethod);// 获取返回结果String result = getMethod.getResponseBodyAsString();// 释放连接getMethod.releaseConnection();return result;
}
测试调用
public static void main(String[] args) throws HttpException, IOException {String post_url ="http://192.168.0.0:9090/test/post_load";// 调用post方法System.out.println(sendPost(post_url));String get_url ="http://192.168.0.0:9090/test/get_load";// 调用get方法System.out.println(sendGet(get_url));
}
以上就是http的两种调用方式的实现。
相关文章:
Java版Http请求post和get两种调用实现
在实际项目中常涉及到相互调用,对于http接口的调用,需要经过建立连接,拼接参数,调用等步骤,记录下来,方便查看。 第一步、引入jar包 pom中引入apache的httpclient包 <dependency><groupId>c…...
yjs demo: 多人在线协作画板
基于 yjs 实现实时在线多人协作的绘画功能 支持多客户端实时共享编辑自动同步,离线支持自动合并,自动冲突处理 1. 客户端代码(基于Vue3) 实现绘画功能 <template><div style"{width: 100vw; height: 100vh; over…...
虹科分享 | 赋能物流机器人:CANopen通信如何发挥重要作用?
现代物流领域迅速融入了技术进步,特别是随着自主机器人的兴起,这一趋势越发明显。确保这些机器人在复杂的仓库环境中精确运行的一个关键方面是CANopen通信协议。该协议集成了各种组件(电机、传感器、摄像头和先进的电池系统)&…...
南丁格尔玫瑰图
目录 由来 效果图 echarts官网找相似图 将南丁格尔玫瑰图引进html页面中 引入echarts 准备容器 初始化echarts实例对象 指定配置项和数据(官网给的option) 将配置项给echarts 自定义南格丁尔玫瑰图 修改颜色 修改玫瑰图大小 修改图的模式为半…...
vue 大文件切片下载
前提是你上传的时候也是切片上传,下载的时候后端给你返回的是一个文件id的数组,如果是你就可以用下面的方法 // 循环下载文件 // id是每个文件的id type 是一个类型,我传入是应为给不同的组件赋值getFile(id, type) {// 通过wen文件id去获取…...
2023年“绿盟杯”四川省大学生信息安全技术大赛
pyfile 先check源码,没什么发现,接着进行目录扫描,扫到路径 /download 下载备份文件得到 www.zip,解压得到app.py 大致审一下代码: 在read目录下给file传参进行请求,如果这个东西存在就会读取出来 这里…...
YOLOv8改进实战 | 更换主干网络Backbone(二)之轻量化模型GhostnetV2
前言 轻量化网络设计是一种针对移动设备等资源受限环境的深度学习模型设计方法。下面是一些常见的轻量化网络设计方法: 网络剪枝:移除神经网络中冗余的连接和参数,以达到模型压缩和加速的目的。分组卷积:将卷积操作分解为若干个较小的卷积操作,并将它们分别作用于输入的不…...
【C++代码】二叉搜索树的最近公共祖先,二叉搜索树中的插入操作,删除二叉搜索树中的节点--代码随想录
题目:二叉搜索树的最近公共祖先 给定一个二叉搜索树, 找到该树中两个指定节点的最近公共祖先。最近公共祖先的定义为:“对于有根树 T 的两个结点 p、q,最近公共祖先表示为一个结点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大&a…...
【ArcGIS微课1000例】0075:将AutoCAD(Dwg、Dxf)文件转换为shp、KML(kml、kmz)文件
文章目录 1. 加载DWG2. 导出为shp3. 投影变换4. 转为kml1. 加载DWG 打开ArcMap,点击添加符号: 选择地形图dwg数据,全选图层,也可以选择需要的图层。 提示位置的空间参考,点击确定即可。 加载效果。 2. 导出为shp 接下来我们演示将面状数据转为shp,选择Polygon图层,右键…...
Unigui中获取手机特征码
在Delphi Unigui中,您可以使用TUniDeviceInfo类来读取设备的一些基本信息,例如设备的操作系统版本、设备名称和分辨率等。但是,TUniDeviceInfo类并不提供设备的特征码信息。 如果您想要获取设备的特征码信息,您可以使用JavaScrip…...
Github Actions实现Spring Boot自动化部署(第二弹)
Github Actions实现Spring Boot自动化部署(第二弹) 前言 今天就来讲述一下如何使用GitHub结合Actions实现Spring Boot程序从提交代码到打包、容器化、部署全过程自动化。首先咱们得现有一个能够在本地运行的Spring Boot程序,并且在Githu…...
【Python机器学习】sklearn.datasets分类任务数据集
如何选择合适的数据集进行机器学习的分类任务? 选择合适的数据集是进行任何机器学习项目的第一步,特别是分类任务。数据集是机器学习任务成功的基础。没有数据,最先进的算法也无从谈起。 本文将专注于sklearn.datasets模块中用于分类任务的数据集。这些数据集覆盖了各种场…...
华为OD 数组去重和排序(100分)【java】A卷+B卷
华为OD统一考试A卷B卷 新题库说明 你收到的链接上面会标注A卷还是B卷。目前大部分收到的都是B卷。 B卷对应20022部分考题以及新出的题目,A卷对应的是新出的题目。 我将持续更新最新题目 获取更多免费题目可前往夸克网盘下载,请点击以下链接进入ÿ…...
黑客技术(网络安全)学习
1.网络安全是什么 网络安全可以基于攻击和防御视角来分类,我们经常听到的 “红队”、“渗透测试” 等就是研究攻击技术,而“蓝队”、“安全运营”、“安全运维”则研究防御技术。 2.网络安全市场 一、是市场需求量高; 二、则是发展相对成熟…...
【算法|动态规划No.28】leetcode1312. 让字符串成为回文串的最少插入次数
个人主页:兜里有颗棉花糖 欢迎 点赞👍 收藏✨ 留言✉ 加关注💓本文由 兜里有颗棉花糖 原创 收录于专栏【手撕算法系列专栏】【LeetCode】 🍔本专栏旨在提高自己算法能力的同时,记录一下自己的学习过程,希望…...
AWS SAP-C02教程10-其它服务
接下来介绍的内容是一些SAP-C02考试会涉及到的,但是目前无法很好将其归类,暂且放在其它服务中 目录 1 AWS WorkSpaces2 AWS APP Stream 2.02.1 WorkSpaces vs APP Stream 2.03 AWS Device Farm4 AWS AppSync5 AWS Outposts6 AWS WaveLength7 AWS Local Zones8 AWS Cloud Map…...
C语言 力扣习题 10.19日 day1
1.两整数相加 给你两个整数 num1 和 num2,返回这两个整数的和。 示例 1: 输入:num1 12, num2 5 输出:17 解释:num1 是 12,num2 是 5 ,它们的和是 12 5 17 ,因此返回 17 。 示例 …...
【Linux升级之路】8_Linux多线程
目录 一、【Linux初阶】多线程1 | 页表的索引作用,线程基础(优缺点、异常、用途),线程VS进程,线程控制,C多线程引入二、【Linux初阶】多线程2 | 分离线程,线程库,线程互斥࿰…...
FFT64点傅里叶变换verilog蝶形运算,代码和视频
名称:FFT64点verilog傅里叶变换 软件:Quartus 语言:Verilog 代码功能: 使用verilog代码实现64点FFT变换,使用蝶形运算实现傅里叶变换 演示视频:http://www.hdlcode.com/index.php?mhome&cView&…...
学习JS闭包
作用域 作用域分为:全局作用域和函数作用域。链式作用域:子对象会一级一级往上查找父对象的变量。 什么是闭包? 闭包可以理解为定义在函数内部的函数,是由一个函数以及与其相关的引用环境组合而成的实体。可以在函数内部访问外部函数的变量&a…...
Phi-4-mini-flash-reasoning惊艳效果展示:同一题Temperature=0.1 vs 0.6对比
Phi-4-mini-flash-reasoning惊艳效果展示:同一题Temperature0.1 vs 0.6对比 1. 模型简介 Phi-4-mini-flash-reasoning是一款专注于文本推理的轻量级模型,特别擅长处理需要逐步分析和逻辑推导的任务。这个模型就像一位思维缜密的数学老师,能…...
Redis怎样追踪系统执行的缓慢操作
slowlog 是 Redis 唯一实时捕获慢命令的机制,为内存环形缓冲区,仅记录执行耗时超阈值的命令,不包含网络延迟与排队时间;默认阈值10ms,建议调至5ms,slowlog-max-len建议设为1024,并需CONFIG REWR…...
gt-checksum 2.0.0 版本重磅升级:多维度优化,让数据库校验更高效精准!
gt-checksum 2.0.0 版本迎来重大升级,围绕三大核心方向全面提升,修复多项关键问题,完善测试覆盖,使数据库结构与数据一致性校验更高效精准稳定。 核心功能新增 此次升级实现了 Oracle ->MySQL 全模式兼容落地,支持 …...
避坑指南:在Civitai找模型时,如何快速识别高质量Checkpoint和Lora?
CivitAI模型筛选实战:5个维度快速识别高质量Checkpoint与LoRA 在Stable Diffusion创作社区中,CivitAI已经成为模型分享的核心平台,每天新增的Checkpoint和LoRA模型数以百计。面对琳琅满目的选择,许多创作者都经历过这样的困境&…...
Smart Power 3:嵌入式开发者的高性价比电源分析工具
1. Smart Power 3 产品概述Smart Power 3是Hardkernel推出的一款面向嵌入式开发者的智能电源分析工具,售价仅45美元。与Hardkernel以往主打的各种Arm架构单板计算机(如ODROID系列)不同,这款产品专注于帮助开发者优化硬件和软件的功…...
人体活动识别技术:算法评估与工程实践
1. 项目背景与核心挑战人体活动识别(Human Activity Recognition, HAR)是机器学习在可穿戴设备和智能感知领域的重要应用场景。我们经常需要从加速度计、陀螺仪等传感器数据中自动识别行走、跑步、坐卧等日常活动。这个任务看似简单,但在实际…...
Blazor + WASI + .NET AOT三重编译链曝光:2026边缘计算场景下首例亚毫秒级首屏加载实录
第一章:Blazor WASI .NET AOT三重编译链的诞生背景与技术动因Web 应用正经历从“运行时依赖”向“零依赖、跨平台、确定性执行”的范式迁移。传统 Blazor WebAssembly 依赖 Mono WebAssembly 运行时,虽支持 .NET 生态,但启动延迟高、内存占…...
回归分析中的目标变量变换技术与Python实践
1. 回归问题中的目标变量变换基础当我在2013年第一次尝试预测房价时,发现原始价格数据呈现明显的右偏分布,导致模型总是高估低价房产而低估豪宅。这个经历让我深刻认识到目标变量变换在回归分析中的重要性。目标变量变换(Target Variable Tra…...
哪些降重工具在降低ChatGPT生成内容的AIGC疑似AI率效果显著?告别 AI率高、学校检测稳过
2026 年高校毕业论文AI 检测全面严审,知网、维普、万方全部升级 AIGC 识别算法,专门抓 ChatGPT 生成文本的句式模板感、逻辑平滑度、表达范式三大 AI 特征。很多同学用 ChatGPT 写完初稿,AIGC 率直接60%~80% 红标超标,普通同义词改…...
