引入的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);
    }

}

最新文章

  1. layzr.js新版使用方法
  2. Negative log-likelihood function
  3. logging模块使用示例
  4. MySQL 监控
  5. .net aes加密视频等文件
  6. Access获取新插入数据的自增长主键Id
  7. 当我们在谈论 DevOps,我们在谈论什么?
  8. IOS开发,如何用最新的Itunes给手机装ipa文件
  9. Delphi 实现任务栏多窗口图标显示
  10. 它们的定义UIAlertView
  11. 允许mysql用户从远程登录
  12. LINUX 笔记-netstat命令
  13. Deepin系统安装mysql教程及相关操作
  14. Mysql高级查询 内连接和外连接详解
  15. python theading线程开发与加锁、信号量、事件等详解
  16. oracle 相关操作
  17. 生成Release apk
  18. python之旅:元类
  19. bzoj 1212: [HNOI2004]L语言 AC自动机+状压
  20. 使用Spring Loader或者Jrebel实现java 热部署

热门文章

  1. CMD命令讲解(一)SC
  2. C#开发——网站应用微信登录开发
  3. Mybatis-plus快速入门
  4. SAP MM 明明已经扩展供应商到采购组织下,采购订单里还是报错?
  5. 关于javascript异步
  6. [C#学习笔记1]用csc.exe和记事本写一个C#应用程序
  7. 2019-1-17 前言 C#高级编程(第11版)
  8. nginx平滑升级(1.14--1.15)
  9. leecode.147. 对无头结点链表进行插入排序
  10. PIC单片机基础1