服务器之家:专注于服务器技术及软件下载分享
分类导航

PHP教程|ASP.NET教程|JAVA教程|ASP教程|编程技术|正则表达式|

服务器之家 - 编程语言 - JAVA教程 - Java commons-httpclient如果实现get及post请求

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

2020-09-17 14:48贾树丙 JAVA教程

这篇文章主要介绍了Java commons-httpclient如果实现get及post请求,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

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

引入的jar包为:

?
1
2
3
4
5
6
<!-- https://mvnrepository.com/artifact/commons-httpclient/commons-httpclient -->
<dependency>
  <groupId>commons-httpclient</groupId>
  <artifactId>commons-httpclient</artifactId>
  <version>3.1</version>
</dependency>

具体实现类为:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
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);
  }
 
}

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

原文链接:https://www.cnblogs.com/acm-bingzi/p/commons_httpclient.html

延伸 · 阅读

精彩推荐