HttpUtil.java 6.0 KB

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