http发送get/post请求,普通传参
http 请求工具类,需引用合适的jar
import org.apache.http.HttpEntity;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.entity.StringEntity;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClientBuilder;
import org.apache.http.protocol.HTTP;
import org.apache.http.util.EntityUtils; import java.io.IOException;
import java.nio.charset.StandardCharsets; /**
* description: http 请求工具类
*/
public class HttpClientUtil {
public static final String reqSystemID = "aweb";
public static final String reqSystemName = "aweb端";
/**
* description: 发送http get 请求
* @param url url
* @return java.lang.String
*/
public static String doHttpGet(String url) {
//创建HttpClient对象
CloseableHttpClient httpClient = HttpClientBuilder.create().build();
//创建HttpGet对象
HttpGet httpGet = new HttpGet(url);
CloseableHttpResponse response = null;
try {
//执行GET请求
response = httpClient.execute(httpGet);
// System.out.println(response.getStatusLine());
//获取响应实体
HttpEntity entity = response.getEntity();
return EntityUtils.toString(entity);
} catch (ClientProtocolException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
//释放资源
try {
response.close();
httpClient.close();
} catch (IOException e) {
e.printStackTrace();
}
}
return null;
} /**
* description: 发送http post 请求
* @param url
* @param json josn参数
* @return java.lang.String
*/
public static String doHttpPost(String url, String json) {
//创建HttpClient对象
CloseableHttpClient httpClient = HttpClientBuilder.create().build();
//创建HttpPost对象
HttpPost post = new HttpPost(url);
//设置POST请求传递参数
try {
post.setHeader(HTTP.CONTENT_TYPE, "application/json");
post.setEntity(new StringEntity(json,
StandardCharsets.UTF_8)); } catch (Exception e) {
e.printStackTrace();
}
//执行请求并处理响应
CloseableHttpResponse response = null;
try {
response = httpClient.execute(post);
HttpEntity entity = response.getEntity();
return EntityUtils.toString(entity,"UTF-8");
} catch (ClientProtocolException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
//释放资源
try {
httpClient.close();
} catch (IOException e) {
e.printStackTrace();
}
}
return null;
}
/**
* description: 发送http post 请求
* @param url
* @param String josn参数
* @param json headerInfo参数
* @return java.lang.String
*/
public static String doHttpPost(String url, String json, JSONObject headerInfo) {
//获取时间、流水
String time = new SimpleDateFormat("yyyyMMddHHmmssSSS").format(new Date());
int random = (int) (Math.random()*1000);
String serialNo = time + String.format("%03d",random);
//创建HttpClient对象
CloseableHttpClient httpClient = HttpClientBuilder.create().build();
//创建HttpPost对象
HttpPost post = new HttpPost(url);
//设置POST请求传递参数
try {
//获取当前用户信息
String operatorID = headerInfo.getString("name");
String operatorName = headerInfo.getString("nickname");
//设置http请求头数据
post.setHeader("operatorID", operatorID);
post.setHeader("operatorName", URLEncoder.encode(operatorName,"utf-8"));
post.setHeader("reqSystemID", reqSystemID);
post.setHeader("reqSystemName", URLEncoder.encode(reqSystemName,"utf-8")); //解决中文乱码
post.setHeader("reqSystemDate", time.substring(0,8));
post.setHeader("reqSystemTime", time.substring(8,14));
post.setHeader("reqSystemSerialNO", serialNo);
post.setHeader(HTTP.CONTENT_TYPE, "application/json");
post.setEntity(new StringEntity(json, StandardCharsets.UTF_8));
} catch (Exception e) {
e.printStackTrace();
}
//执行请求并处理响应
CloseableHttpResponse response = null;
try {
response = httpClient.execute(post);
HttpEntity entity = response.getEntity();
return EntityUtils.toString(entity,"UTF-8");
} catch (ClientProtocolException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
//释放资源
try {
httpClient.close();
} catch (IOException e) {
e.printStackTrace();
}
}
return null;
}
}
http发送get/post请求,普通传参的更多相关文章
- vue 使用 axios 时 post 请求方法传参无法发送至后台
axios 时 post 请求方法传参无法发送至后台报错如下 Response to preflight request doesn't pass access control check: No ' ...
- SpringBoot 2.x (2):请求和传参
其实请求和传参这些知识属于SpringMVC 不过这也属于必须掌握的知识,巩固基础吧 GET请求: 以第一篇文章自动的方式创建SpringBoot项目: 然后新建Controller: package ...
- scrapy处理post请求的传参和日志等级
一.Scrapy的日志等级 - 在使用scrapy crawl spiderFileName运行程序时,在终端里打印输出的就是scrapy的日志信息. - 日志信息的种类: ERROR : 一般错误 ...
- http请求与传参
这并不算是文章,暂时只做粗略地记录,以免忘记,因此会显得杂乱无章,随便抓了几个包和对postman截图,日后有空再完善 1.get方式 只有一种方式,那就是在url后面跟参数 2.post方式 1)表 ...
- 解决python发送multipart/form-data请求上传文件的问题
服务器接收文件时,有时会使用表单接收的方式,这意味着我们需要使用Python的requests上传表单数据和文件. 常用的方式一般如下: data = { 'name': 'nginx' } file ...
- vue axios传参报错的解决方法
今天有人问同一套后台系统为什么jquery可以正常使用,axios却报错呢,下面总结如下: 总的来说是jquery和axios传参类型不同,那为什么jquery和axios请求时传参类型不同? 1)j ...
- SpringMVC前后端分离交互传参详细教程
温故而知新,本文为一时兴起写出,如有错误还请指正 本文后台基于SpringBoot2.5.6编写,前端基于Vue2 + axios和微信小程序JS版分别编写进行联调测试,用于理解前后端分离式开发的交互 ...
- springboot接收前端传参的几种方式
1.通过HttpServletRequest接收,常用于获取请求头参数以及Cookie,适用于GET 和 POST请求方式,以下两种方式: @GetMapping("/demo1" ...
- scrapy框架post请求发送,五大核心组件,日志等级,请求传参
一.post请求发送 - 问题:爬虫文件的代码中,我们从来没有手动的对start_urls列表中存储的起始url进行过请求的发送,但是起始url的确是进行了请求的发送,那这是如何实现的呢? - 解答: ...
- python爬虫---scrapy框架爬取图片,scrapy手动发送请求,发送post请求,提升爬取效率,请求传参(meta),五大核心组件,中间件
# settings 配置 UA USER_AGENT = 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, l ...
随机推荐
- Linux在线安装JDK1.8+
Linux在线安装JDK1.8+(默认已发布最新版) 命令在线下载jdk: wget --no-check-certificate --no-cookies --header "Cookie ...
- Kong入门学习实践(5)API网关路由转发
最近在学习Kong网关,因此根据老习惯,我会将我的学习过程记录下来,一来体系化整理,二来作为笔记供将来翻看.由于我司会直接使用Kong企业版,学习过程中我会使用Kong开源版. 本篇,我们学习快速配置 ...
- 这几个 Vibe Coding 经验,真的建议学!
大家好,我是 Immerse,一名独立开发者.内容创作者.AGI 实践者. 关注公众号:#沉浸式趣谈,获取最新文章(更多内容只在公众号更新) 个人网站:https://yaolifeng.com 也同 ...
- Atcoders [AGC049D] Convex Sequence 题解
AT_agc049_d [AGC049D] Convex Sequence 限制 \(1\) 不好满足,先不管它.限制 \(2\) 移项可得 \(a_{i}-a_{i-1}\le a_{i+1}-a_ ...
- 修改表名 sql
简介 alter table titles_test rename to titles_2017;
- “7”势如虹|突破集成边界,谷云科技成为iPaaS领头羊!
七载春秋,步履不停 5月18日,谷云科技RestCloud迎来了七周年生日.可能在大家看来,这似乎是一个常规的企业周年庆,然而,简约却不简单,在公司快速发展的背后,却蕴藏着涌动的力量,如果用一句话来概 ...
- 【Roslyn C#】Runtime环境Unity读取字符串代码
Roslyn C# 下载地址:https://files-cdn.cnblogs.com/files/sanyejun/RoslynC_RuntimeCompiler.zip 使用示例 using S ...
- Golang 性能分析神器 pprof 详解与实践(图文教程)
一.简介 pprof(性能剖析工具)是 Go 语言标准库提供的用于 go 程序性能分析的工具.可以帮助你分析程序在 CPU使用率.内存堆栈分配.内存占用.协程.锁等方面的表现并且生成相应的性能分析报告 ...
- centos7 网卡接口命名规则 udev 详解
在 CentOS 7 中,网络接口的命名由 udev 设备管理器管理.以下是详解 udev 规则如何控制网卡命名的流程: 核心机制 udev 规则目录 规则文件:/usr/li ...
- yarn 全局包找不到
# in ~/.bashrc or equivalent export PATH="$(yarn global bin):$PATH" # for fish-shell: set ...