java getcomponents_Java httpcomponents发送get post请求代码实例

引入的包为:

org.apache.httpcomponents

httpclient

4.5.8

实现的工具类为:

import com.alibaba.fastjson.JSON;

import org.apache.http.NameValuePair;

import org.apache.http.client.entity.UrlEncodedFormEntity;

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.impl.client.CloseableHttpClient;

import org.apache.http.impl.client.HttpClients;

import org.apache.http.message.BasicNameValuePair;

import org.slf4j.Logger;

import org.slf4j.LoggerFactory;

import java.io.IOException;

import java.util.ArrayList;

import java.util.HashMap;

import java.util.List;

import java.util.Map;

public class HttpClientHelper {

private static Logger logger = LoggerFactory.getLogger(HttpClientHelper.class);

private HttpClientHelper() {

}

/**

* 发起POST请求

*

* @param url url

* @param paramMap 参数的Map格式

*/

public static void sendPost(String url, Map paramMap) {

logger.info("开始发起POST请求,请求地址为{},参数为{}", url, JSON.toJSON(paramMap));

CloseableHttpResponse response = null;

try (CloseableHttpClient httpClient = HttpClients.createDefault()) {

String encoding = "utf-8";

//创建post请求对象

HttpPost httpPost = new HttpPost(url);

//装填请求参数

List list = new ArrayList<>();

for (Map.Entry entry : paramMap.entrySet()) {

list.add(new BasicNameValuePair(entry.getKey(), entry.getValue()));

}

//设置参数到请求对象中

httpPost.setEntity(new UrlEncodedFormEntity(list, encoding));

httpPost.setHeader("Content-type", "application/x-www-form-urlencoded");

httpPost.setHeader("User-Agent", "Mozilla/4.0 (compatible; MSIE 5.0; Windows NT; DigExt)");

response = httpClient.execute(httpPost);

} catch (IOException e) {

logger.error("POST请求发出失败,请求的地址为{},参数为{},错误信息为{}", url, JSON.toJSON(paramMap), e.getMessage(), e);

} finally {

try {

if (response != null) {

response.close();

}

} catch (IOException e) {

logger.error("POST请求response关闭异常,错误信息为{}", e.getMessage(), e);

}

}

}

/**

* 发起GET请求

*

* @param urlParam url请求,包含参数

*/

public static void sendGet(String urlParam) {

logger.info("开始发起GET请求,请求地址为{}", urlParam);

HttpGet httpGet = new HttpGet(urlParam);

CloseableHttpResponse response = null;

try (CloseableHttpClient httpClient = HttpClients.createDefault()) {

response = httpClient.execute(httpGet);

int status = response.getStatusLine().getStatusCode();

logger.error("GET请求发出成功,请求的地址为{},返回状态为{}", urlParam, status);

} catch (IOException e) {

logger.error("GET请求发出失败,请求的地址为{},错误信息为{}", urlParam, e.getMessage(), e);

} finally {

try {

if (response != null) {

response.close();

}

} catch (IOException e) {

logger.error("GET请求response关闭异常,错误信息为{}", e.getMessage(), e);

}

}

}

public static void main(String[] args) {

String url = "https://jiashubing.cn/tencenttest";

//需要传入的参数

Map map = new HashMap<>();

map.put("code", "js");

map.put("day", "0");

map.put("city", "北京");

map.put("dfc", "1");

map.put("charset", "utf-8");

sendPost(url, map);

String urlParam = "https://jiashubing.cn/talk/document?fileid=1234ji贾树丙";

sendGet(urlParam);

}

}

如果POST请求想要发送Json 格式的数据,只需要修改成这样:

String json = JSON.toJSONString(paramMap);

StringEntity requestEntity = new StringEntity(json, "utf-8");

httpPost.setEntity(requestEntity);

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

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值