java如果写http请求,Java commons-httpclient如果实现get及post请求

PS:这个jar包,在2007年之后就没有更新过了, 是比较老的版本了。追求新的版本 用HttpComponents 比较好

引入的jar包为:

commons-httpclient

commons-httpclient

3.1

具体实现类为:

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);

}

}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持聚米学院。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值