HttpClient发送http请求需要的jar包+使用教程+详解 我在

HttpClient发送http请求需要的jar包+使用教程+详解 我在
最新推荐文章于 2025-05-03 13:40:53 发布
a303153878
最新推荐文章于 2025-05-03 13:40:53 发布
阅读量1.1w
收藏
10
点赞数
6
CC 4.0 BY-SA版权
文章标签:
HttpClient
https
http
post
get
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/a303153878/article/details/79880365
本文介绍了一个用于发起HTTP GET和POST请求的实用工具类。该类使用Apache HttpClient库实现,并包含连接管理和错误处理机制,确保了请求的有效性和系统的稳定性。
摘要生成于
C知道
,由 DeepSeek-R1 满血版支持,
前往体验 >
package test.utils;
import org.apache.commons.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.HttpConnectionManagerParams;
import org.apache.commons.lang.StringUtils;
import org.apache.log4j.Logger;
import java.io.IOException;
import java.net.URL;
public class HttpUtil{
private static final Logger logger = Logger.getLogger(MemberFrontBusiness.class);
private final static String OPERATER_NAME = "【HTTP操作】";
private final static int SUCCESS = 200;
private final static String UTF8 = "UTF-8";
private HttpClient client;
private static HttpUtil instance = new HttpUtil();
/**
* 私有化构造器
*/
private HttpUtil() {
HttpConnectionManager httpConnectionManager = new MultiThreadedHttpConnectionManager();
HttpConnectionManagerParams params = httpConnectionManager.getParams();
params.setConnectionTimeout(5000);
params.setSoTimeout(20000);
params.setDefaultMaxConnectionsPerHost(1000);
params.setMaxTotalConnections(1000);
client = new HttpClient(httpConnectionManager);
client.getParams().setContentCharset(UTF8);
client.getParams().setHttpElementCharset(UTF8);
}
/**
* get请求
*/
public static String get(URL url) {
return instance.doGet(url);
}
private String doGet(URL url) {
long beginTime = System.currentTimeMillis();
String respStr = StringUtils.EMPTY;
try {
logger.info(OPERATER_NAME + "开始get通信,目标host:" + url);
HttpMethod method = new GetMethod(url.toString());
// 中文转码
method.getParams().setContentCharset(UTF8);
try {
client.executeMethod(method);
} catch (HttpException e) {
logger.error(new StringBuffer("发送HTTP GET给\r\n").append(url)
.append("\r\nHTTP异常\r\n"), e);
} catch (IOException e) {
logger.error(new StringBuffer("发送HTTP GET给\r\n").append(url)
.append("\r\nIO异常\r\n"), e);
}
if (method.getStatusCode() == SUCCESS) {
respStr = method.getResponseBodyAsString();
}
// 释放连接
method.releaseConnection();
logger.info(OPERATER_NAME + "通讯完成,返回码:" + method.getStatusCode());
logger.info(OPERATER_NAME + "返回内容:" + method.getResponseBodyAsString());
logger.info(OPERATER_NAME + "结束..返回结果:" + respStr);
} catch (Exception e) {
logger.info(OPERATER_NAME, e);
}
long endTime = System.currentTimeMillis();
logger.info(OPERATER_NAME + "共计耗时:" + (endTime - beginTime) + "ms");
return respStr;
}
/**
* POST请求
*/
public static String post(URL url, String content) {
return instance.doPost(url, content);
}
private String doPost(URL url, String content) {
long beginTime = System.currentTimeMillis();
String respStr = StringUtils.EMPTY;
try {
logger.info(OPERATER_NAME + "开始post通信,目标host:" + url.toString());
logger.info("通信内容:" + content);
PostMethod post = new PostMethod(url.toString());
RequestEntity requestEntity = new StringRequestEntity(content, "application/json;charse=UTF-8", UTF8);
post.setRequestEntity(requestEntity);
// 设置格式
post.getParams().setContentCharset(UTF8);
client.executeMethod(post);
if (post.getStatusCode() == SUCCESS) {
respStr = post.getResponseBodyAsString();
}
logger.info(OPERATER_NAME + "通讯完成,返回码:" + post.getStatusCode());
logger.info(OPERATER_NAME + "返回内容:" + post.getResponseBodyAsString());
logger.info(OPERATER_NAME + "结束..返回结果:" + respStr);
post.releaseConnection();
} catch (Exception e) {
logger.error(OPERATER_NAME, e);
}
long endTime = System.currentTimeMillis();
logger.info(OPERATER_NAME + "共计耗时:" + (endTime - beginTime) + "ms");
return respStr;
}
}
这是测试方法
public static void main(String[] args) throws Exception {
JSONObject json = new JSONObject();
json.put("funCode", "3001");
json.put("platCode", "3001");
URL url = new URL("http://127.0.0.1:9191/member");
String resp = HttpUtil.post(url, json.toString());
System.out.println(resp);
}
}