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

365现金app 📅 2025-07-02 06:52:31 👤 admin 👁️ 8357 ❤️ 652
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);

}

}

相关推荐

Android WiFi设置全攻略:轻松修改连接,提升网络体验
beat365亚洲投注

Android WiFi设置全攻略:轻松修改连接,提升网络体验

📅 06-27 👁️ 9098
扎克全皮肤阵容大揭秘2025年英雄联盟扎克皮肤价格大全
windows10磁盘分区后,如何恢复分区,回到未分区之前