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…...
Unity3D中Gfx.WaitForPresent优化方案
前言 在Unity中,Gfx.WaitForPresent占用CPU过高通常表示主线程在等待GPU完成渲染(即CPU被阻塞),这表明存在GPU瓶颈或垂直同步/帧率设置问题。以下是系统的优化方案: 对惹,这里有一个游戏开发交流小组&…...
Linux简单的操作
ls ls 查看当前目录 ll 查看详细内容 ls -a 查看所有的内容 ls --help 查看方法文档 pwd pwd 查看当前路径 cd cd 转路径 cd .. 转上一级路径 cd 名 转换路径 …...
2.Vue编写一个app
1.src中重要的组成 1.1main.ts // 引入createApp用于创建应用 import { createApp } from "vue"; // 引用App根组件 import App from ./App.vue;createApp(App).mount(#app)1.2 App.vue 其中要写三种标签 <template> <!--html--> </template>…...
纯 Java 项目(非 SpringBoot)集成 Mybatis-Plus 和 Mybatis-Plus-Join
纯 Java 项目(非 SpringBoot)集成 Mybatis-Plus 和 Mybatis-Plus-Join 1、依赖1.1、依赖版本1.2、pom.xml 2、代码2.1、SqlSession 构造器2.2、MybatisPlus代码生成器2.3、获取 config.yml 配置2.3.1、config.yml2.3.2、项目配置类 2.4、ftl 模板2.4.1、…...
CRMEB 中 PHP 短信扩展开发:涵盖一号通、阿里云、腾讯云、创蓝
目前已有一号通短信、阿里云短信、腾讯云短信扩展 扩展入口文件 文件目录 crmeb\services\sms\Sms.php 默认驱动类型为:一号通 namespace crmeb\services\sms;use crmeb\basic\BaseManager; use crmeb\services\AccessTokenServeService; use crmeb\services\sms\…...
GraphQL 实战篇:Apollo Client 配置与缓存
GraphQL 实战篇:Apollo Client 配置与缓存 上一篇:GraphQL 入门篇:基础查询语法 依旧和上一篇的笔记一样,主实操,没啥过多的细节讲解,代码具体在: https://github.com/GoldenaArcher/graphql…...
Monorepo架构: Nx Cloud 扩展能力与缓存加速
借助 Nx Cloud 实现项目协同与加速构建 1 ) 缓存工作原理分析 在了解了本地缓存和远程缓存之后,我们来探究缓存是如何工作的。以计算文件的哈希串为例,若后续运行任务时文件哈希串未变,系统会直接使用对应的输出和制品文件。 2 …...
用递归算法解锁「子集」问题 —— LeetCode 78题解析
文章目录 一、题目介绍二、递归思路详解:从决策树开始理解三、解法一:二叉决策树 DFS四、解法二:组合式回溯写法(推荐)五、解法对比 递归算法是编程中一种非常强大且常见的思想,它能够优雅地解决很多复杂的…...
PH热榜 | 2025-06-08
1. Thiings 标语:一套超过1900个免费AI生成的3D图标集合 介绍:Thiings是一个不断扩展的免费AI生成3D图标库,目前已有超过1900个图标。你可以按照主题浏览,生成自己的图标,或者下载整个图标集。所有图标都可以在个人或…...
ArcGIS Pro+ArcGIS给你的地图加上北回归线!
今天来看ArcGIS Pro和ArcGIS中如何给制作的中国地图或者其他大范围地图加上北回归线。 我们将在ArcGIS Pro和ArcGIS中一同介绍。 1 ArcGIS Pro中设置北回归线 1、在ArcGIS Pro中初步设置好经纬格网等,设置经线、纬线都以10间隔显示。 2、需要插入背会归线…...
