Java commons-httpclient如果实现get及post请求

 更新时间:2020年09月17日 10:52:31   作者:贾树丙  
这篇文章主要介绍了Java commons-httpclient如果实现get及post请求,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

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

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

}

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

相关文章

  • 浅谈Java double 相乘的结果偏差小问题

    浅谈Java double 相乘的结果偏差小问题

    下面小编就为大家带来一篇浅谈Java double 相乘的结果偏差小问题。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-01-01
  • JDK12的新特性之CompactNumberFormat详解

    JDK12的新特性之CompactNumberFormat详解

    这篇文章主要介绍了JDK12的新特性之CompactNumberFormat,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-05-05
  • Java 实现简易教务管理系统的代码

    Java 实现简易教务管理系统的代码

    这篇文章主要介绍了Java 实现简易教务管理系统的代码,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-07-07
  • Java中实现日志记录的方案总结

    Java中实现日志记录的方案总结

    在平时使用到一些软件中,比如某宝或者某书,通过记录用户的行为来构建和分析用户的行为数据,这就需要使用到日志系统来存储或者记录数据,小编为大家整理了几种Java日志方案,希望对大家有所帮助
    2024-12-12
  • 详解Spring MVC3返回JSON数据中文乱码问题解决

    详解Spring MVC3返回JSON数据中文乱码问题解决

    本篇文章主要介绍了Spring MVC3返回JSON数据中文乱码问题解决,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-01-01
  • spring缓存代码详解

    spring缓存代码详解

    这篇文章主要介绍了spring缓存代码详解,分享了相关代码示例,小编觉得还是挺不错的,具有一定借鉴价值,需要的朋友可以参考下
    2018-02-02
  • HttpUtils 发送http请求工具类(实例讲解)

    HttpUtils 发送http请求工具类(实例讲解)

    下面小编就为大家带来一篇HttpUtils 发送http请求工具类(实例讲解)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-07-07
  • Java实现产生随机字符串主键的UUID工具类

    Java实现产生随机字符串主键的UUID工具类

    这篇文章主要介绍了Java实现产生随机字符串主键的UUID工具类,涉及java随机数与字符串遍历、转换等相关操作技巧,需要的朋友可以参考下
    2017-10-10
  • 关于spring依赖注入的方式以及优缺点

    关于spring依赖注入的方式以及优缺点

    这篇文章主要介绍了关于spring依赖注入的方式以及优缺点,依赖注入,是IOC的一个方面,是个通常的概念,它有多种解释,这概念是说你不用创建对象,而只需要描述它如何被创建,需要的朋友可以参考下
    2023-07-07
  • Java中的泛型

    Java中的泛型

    这篇文章主要介绍为何要泛型,如何使用泛型,自定义泛型的方法,泛型类的子类等多方面介绍了JAVA中的泛型,需要的小伙伴请看下文
    2021-08-08

最新评论