commons-httpclient 实现get和post请求
引入的jar包为:
<!-- https://mvnrepository.com/artifact/commons-httpclient/commons-httpclient --> <dependency> <groupId>commons-httpclient</groupId> <artifactId>commons-httpclient</artifactId> <version>3.1</version> </dependency>
具体实现类为:
import org.apache.commons.httpclient.HttpClient; import org.apache.commons.httpclient.methods.GetMethod; import org.apache.commons.httpclient.methods.PostMethod; import org.apache.commons.httpclient.methods.RequestEntity; import org.apache.commons.httpclient.methods.StringRequestEntity; import org.apache.commons.httpclient.params.HttpMethodParams; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import java.io.IOException; public class HttpClientHelper { private static Logger logger = LoggerFactory.getLogger(HttpClientHelper.class); private HttpClientHelper() { } /** * 发起POST请求 * * @param url url * @param paramJson 参数的json格式 */ public static String sendPost(String url, String paramJson) { logger.info("开始发起POST请求,请求地址为{},参数为{}", url, paramJson); // 创建httpClient实例对象 HttpClient httpClient = new HttpClient(); // 设置httpClient连接主机服务器超时时间:15000毫秒 httpClient.getHttpConnectionManager().getParams().setConnectionTimeout(15000); // 创建post请求方法实例对象 PostMethod postMethod = new PostMethod(url); // 设置post请求超时时间 postMethod.getParams().setParameter(HttpMethodParams.SO_TIMEOUT, 60000); postMethod.addRequestHeader("Content-Type", "application/json"); try { //json格式的参数解析 RequestEntity entity = new StringRequestEntity(paramJson, "application/json", "UTF-8"); postMethod.setRequestEntity(entity); httpClient.executeMethod(postMethod); String result = postMethod.getResponseBodyAsString(); postMethod.releaseConnection(); return result; } catch (IOException e) { logger.error("POST请求发出失败,请求的地址为{},参数为{},错误信息为{}", url, paramJson, e.getMessage(), e); } return null; } /** * 发起GET请求 * * @param urlParam url请求,包含参数 */ public static String sendGet(String urlParam) { logger.info("开始发起GET请求,请求地址为{}", urlParam); // 创建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"); try { httpClient.executeMethod(getMethod); String result = getMethod.getResponseBodyAsString(); getMethod.releaseConnection(); logger.info("返回信息为{}", result); return result; } catch (IOException e) { logger.error("GET请求发出失败,请求的地址为{},错误信息为{}", urlParam, e.getMessage(), e); } return null; } public static void main(String[] args) { String url = "https://jiashubing.cn/tencenttest"; String param = "{\"aaa\":\"bbbbbbb\"}"; sendPost(url, param); String urlParam = "https://jiashubing.cn/talk/document?fileid=1234"; sendGet(urlParam); } }
最新文章
- 使用 python 获取 Linux 的 IP 信息(通过 ifconfig 命令)
- Mysql的视图、存储过程、函数、索引全解析
- 什么是SCADA Viewer
- 【Swift学习】Swift编程之旅---属性(十四)
- python 杨辉三角
- [麦先生]初学Laravel框架与ThinkPHP的不同(1)
- 一些站点使用的服务器软件、js 框架大收集 [ 整理中 ]
- Problem W	UVA 662	二十三 Fast Food
- 【转】selenium及webdriver的原理
- How To Read a Paper.md
- 【转载】nginx 并发数问题思考:worker_connections,worker_processes与 max clients
- linux下MongoDB客户端shell基本操作
- 关于Jaccard相似度在竞品分析中的一点思考
- Django中数据库表的关联与创建(语言:python)
- PWD的编译及调试
- day25 Python __setattr__
- Nginx+Django搭建
- 【Java POI】1、Java POI的使用
- centos7和centos6.5环境rpm方式安装mysql5.7和mysql5.6详解
- e739. 创建一个标签组件
热门文章
- .NET移动开发,关于发布IOS的方法(本人亲身经历折腾很久终于成功)
- EF 外键不显示、如何让外键显示!增、删、改 操作时,外键不显示,只显示导航属性!
- [TCP/IP] 传输层-ethereal 抓包分析TCP包
- oracle学习笔记(六) JDBC使用
- mysql命令行导入导出数据库
- 折腾Java设计模式之状态模式
- python3 Flask -day2
- Java实现";命令式";简易文本编辑器原型
- git常用命令总结--廖雪峰老师Git教程命令总结
- 如何禁止chrome浏览器http自动转成https 【转】