HttpUtil.java 6.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126
  1. package com.steerinfo.dil.util;
  2. import com.alibaba.fastjson.JSONArray;
  3. import com.alibaba.fastjson.JSONObject;
  4. import org.apache.commons.httpclient.HttpClient;
  5. import org.apache.commons.httpclient.HttpException;
  6. import org.apache.commons.httpclient.methods.*;
  7. import org.apache.commons.httpclient.params.HttpMethodParams;
  8. import org.springframework.web.bind.annotation.RequestParam;
  9. import java.io.IOException;
  10. public class HttpUtil {
  11. public static JSONObject post(PostMethod postMethod, int connectTimeout, int socketTimeout) throws Exception {
  12. // 创建httpClient实例对象
  13. HttpClient httpClient = new HttpClient();
  14. // 设置httpClient连接主机服务器超时时间
  15. httpClient.getHttpConnectionManager().getParams().setConnectionTimeout(connectTimeout);
  16. // 设置socket.timeout时间
  17. httpClient.getHttpConnectionManager().getParams().setSoTimeout(socketTimeout);
  18. if (postMethod.getRequestHeader("Content-Type") == null) {
  19. postMethod.addRequestHeader("Content-Type", "application/json;charset=utf-8");
  20. }
  21. httpClient.executeMethod(postMethod);
  22. String result = postMethod.getResponseBodyAsString();
  23. postMethod.releaseConnection();//释放连接
  24. return JSONObject.parseObject(result);
  25. }
  26. public static JSONObject delete(DeleteMethod deleteMethod, int connectTimeout, int socketTimeout) throws Exception {
  27. HttpClient httpClient = new HttpClient();
  28. httpClient.getHttpConnectionManager().getParams().setConnectionTimeout(connectTimeout);
  29. httpClient.getHttpConnectionManager().getParams().setSoTimeout(socketTimeout);
  30. if (deleteMethod.getRequestHeader("Content-Type") == null) {
  31. deleteMethod.addRequestHeader("Content-Type", "application/json;charset=utf-8");
  32. }
  33. httpClient.executeMethod(deleteMethod);
  34. String result = deleteMethod.getResponseBodyAsString();
  35. deleteMethod.releaseConnection();//释放连接
  36. return JSONObject.parseObject(result);
  37. }
  38. public static JSONObject sendPost(String url, JSONObject param, @RequestParam(required = false) String headerValue) throws HttpException, IOException {
  39. // 创建httpClient实例对象
  40. HttpClient httpClient = new HttpClient();
  41. // 设置httpClient连接/执行超时时间(ms)
  42. httpClient.getHttpConnectionManager().getParams().setConnectionTimeout(1000);
  43. httpClient.getHttpConnectionManager().getParams().setSoTimeout(15000);
  44. // 创建post请求方法实例对象
  45. PostMethod postMethod = new PostMethod(url);
  46. postMethod.addRequestHeader("Content-Type", "application/json;charset=utf-8");
  47. postMethod.setRequestHeader("Cookie", headerValue);
  48. // 构建参数
  49. RequestEntity entity = new StringRequestEntity(param.toJSONString(), "application/json", "UTF-8");
  50. postMethod.setRequestEntity(entity);
  51. //执行并处理返回
  52. httpClient.executeMethod(postMethod);
  53. String result = postMethod.getResponseBodyAsString();
  54. postMethod.releaseConnection();
  55. return JSONObject.parseObject(result);
  56. }
  57. public static JSONObject sendPostObject(String url, JSONObject param, String accessToken) throws HttpException, IOException {
  58. // 创建httpClient实例对象
  59. HttpClient httpClient = new HttpClient();
  60. // 设置httpClient连接/执行超时时间(ms)
  61. httpClient.getHttpConnectionManager().getParams().setConnectionTimeout(1000);
  62. httpClient.getHttpConnectionManager().getParams().setSoTimeout(15000);
  63. // 创建post请求方法实例对象
  64. PostMethod postMethod = new PostMethod(url);
  65. postMethod.addRequestHeader("Content-Type", "application/json;charset=utf-8");
  66. // 构建参数
  67. postMethod.setRequestHeader("Authorization", accessToken);
  68. RequestEntity entity = new StringRequestEntity(param.toJSONString(), "application/json", "UTF-8");
  69. postMethod.setRequestEntity(entity);
  70. //执行并处理返回
  71. httpClient.executeMethod(postMethod);
  72. String result = postMethod.getResponseBodyAsString();
  73. postMethod.releaseConnection();
  74. return JSONObject.parseObject(result);
  75. }
  76. public static JSONObject sendPostArray(String url, JSONArray array, String accessToken) throws HttpException, IOException {
  77. // 创建httpClient实例对象
  78. HttpClient httpClient = new HttpClient();
  79. // 设置httpClient连接/执行超时时间(ms)
  80. httpClient.getHttpConnectionManager().getParams().setConnectionTimeout(1000);
  81. httpClient.getHttpConnectionManager().getParams().setSoTimeout(15000);
  82. // 创建post请求方法实例对象
  83. PostMethod postMethod = new PostMethod(url);
  84. postMethod.addRequestHeader("Content-Type", "application/json;charset=utf-8");
  85. // 构建参数
  86. postMethod.setRequestHeader("Authorization", accessToken);
  87. //postMethod.setRequestHeader("Cookie",accessToken);
  88. RequestEntity entity = new StringRequestEntity(array.toJSONString(), "application/json", "UTF-8");
  89. postMethod.setRequestEntity(entity);
  90. //执行并处理返回
  91. httpClient.executeMethod(postMethod);
  92. String result = postMethod.getResponseBodyAsString();
  93. postMethod.releaseConnection();
  94. return JSONObject.parseObject(result);
  95. }
  96. public static String sendGet(String urlParam) throws HttpException, IOException {
  97. // 创建httpClient实例对象
  98. HttpClient httpClient = new HttpClient();
  99. // 设置httpClient连接主机服务器超时时间:15000毫秒
  100. httpClient.getHttpConnectionManager().getParams().setConnectionTimeout(15000);
  101. // 创建GET请求方法实例对象
  102. GetMethod getMethod = new GetMethod(urlParam);
  103. // 设置post请求超时时间
  104. getMethod.getParams().setParameter(HttpMethodParams.SO_TIMEOUT, 60000);
  105. getMethod.addRequestHeader("Content-Type", "application/json;charset=utf-8");
  106. httpClient.executeMethod(getMethod);
  107. String result = getMethod.getResponseBodyAsString();
  108. getMethod.releaseConnection();
  109. return result;
  110. }
  111. public static void main(String[] args) throws HttpException, IOException {
  112. }
  113. }