HttpHelper.java 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251
  1. package cn.com.lzt.common.util.dingding;
  2. import java.io.File;
  3. import java.io.IOException;
  4. import java.net.URI;
  5. import org.apache.commons.io.FileUtils;
  6. import org.apache.http.HttpEntity;
  7. import org.apache.http.client.config.RequestConfig;
  8. import org.apache.http.client.methods.CloseableHttpResponse;
  9. import org.apache.http.client.methods.HttpGet;
  10. import org.apache.http.client.methods.HttpPost;
  11. import org.apache.http.client.protocol.HttpClientContext;
  12. import org.apache.http.entity.StringEntity;
  13. import org.apache.http.entity.mime.MultipartEntityBuilder;
  14. import org.apache.http.entity.mime.content.FileBody;
  15. import org.apache.http.entity.ContentType;
  16. import org.apache.http.impl.client.CloseableHttpClient;
  17. import org.apache.http.impl.client.HttpClients;
  18. import org.apache.http.impl.client.RedirectLocations;
  19. import org.apache.http.protocol.BasicHttpContext;
  20. import org.apache.http.protocol.HttpContext;
  21. import org.apache.http.util.EntityUtils;
  22. import com.alibaba.fastjson.JSON;
  23. import com.alibaba.fastjson.JSONObject;
  24. public class HttpHelper {
  25. public static JSONObject httpGet(String url) {
  26. HttpGet httpGet = new HttpGet(url);
  27. CloseableHttpResponse response = null;
  28. CloseableHttpClient httpClient = HttpClients.createDefault();
  29. RequestConfig requestConfig = RequestConfig.custom().
  30. setSocketTimeout(2000).setConnectTimeout(2000).build();
  31. httpGet.setConfig(requestConfig);
  32. try {
  33. response = httpClient.execute(httpGet, new BasicHttpContext());
  34. if (response.getStatusLine().getStatusCode() != 200) {
  35. System.out.println("request url failed, http code=" + response.getStatusLine().getStatusCode()
  36. + ", url=" + url);
  37. return null;
  38. }
  39. HttpEntity entity = response.getEntity();
  40. if (entity != null) {
  41. String resultStr = EntityUtils.toString(entity, "utf-8");
  42. JSONObject result = JSON.parseObject(resultStr);
  43. if (result.getInteger("errcode") == 0) {
  44. // result.remove("errcode");
  45. // result.remove("errmsg");
  46. return result;
  47. } else {
  48. System.out.println("request url=" + url + ",return value=");
  49. System.out.println(resultStr);
  50. int errCode = result.getInteger("errcode");
  51. String errMsg = result.getString("errmsg");
  52. throw new Exception("code" + errCode + ";msg:" + errMsg);
  53. }
  54. }
  55. } catch (Exception e) {
  56. System.out.println("request url=" + url + ", exception, msg=" + e.getMessage());
  57. e.printStackTrace();
  58. } finally {
  59. if (response != null) try {
  60. response.close();
  61. } catch (IOException e) {
  62. e.printStackTrace();
  63. }
  64. }
  65. return null;
  66. }
  67. public static JSONObject httpPost(String url, Object data) {
  68. HttpPost httpPost = new HttpPost(url);
  69. CloseableHttpResponse response = null;
  70. CloseableHttpClient httpClient = HttpClients.createDefault();
  71. RequestConfig requestConfig = RequestConfig.custom().
  72. setSocketTimeout(2000).setConnectTimeout(2000).build();
  73. httpPost.setConfig(requestConfig);
  74. httpPost.addHeader("Content-Type", "application/json");
  75. try {
  76. StringEntity requestEntity = new StringEntity(JSON.toJSONString(data), "utf-8");
  77. httpPost.setEntity(requestEntity);
  78. response = httpClient.execute(httpPost, new BasicHttpContext());
  79. if (response.getStatusLine().getStatusCode() != 200) {
  80. System.out.println("request url failed, http code=" + response.getStatusLine().getStatusCode()
  81. + ", url=" + url);
  82. return null;
  83. }
  84. HttpEntity entity = response.getEntity();
  85. if (entity != null) {
  86. String resultStr = EntityUtils.toString(entity, "utf-8");
  87. JSONObject result = JSON.parseObject(resultStr);
  88. if (result.getInteger("errcode") == 0) {
  89. result.remove("errcode");
  90. result.remove("errmsg");
  91. return result;
  92. } else {
  93. System.out.println("request url=" + url + ",return value=");
  94. System.out.println(resultStr);
  95. int errCode = result.getInteger("errcode");
  96. String errMsg = result.getString("errmsg");
  97. throw new Exception("code" + errCode + ";msg:" + errMsg);
  98. }
  99. }
  100. } catch (Exception e) {
  101. System.out.println("request url=" + url + ", exception, msg=" + e.getMessage());
  102. e.printStackTrace();
  103. } finally {
  104. if (response != null) try {
  105. response.close();
  106. } catch (IOException e) {
  107. e.printStackTrace();
  108. }
  109. }
  110. return null;
  111. }
  112. public static JSONObject uploadMedia(String url, File file) {
  113. HttpPost httpPost = new HttpPost(url);
  114. CloseableHttpResponse response = null;
  115. CloseableHttpClient httpClient = HttpClients.createDefault();
  116. RequestConfig requestConfig = RequestConfig.custom().setSocketTimeout(2000).setConnectTimeout(2000).build();
  117. httpPost.setConfig(requestConfig);
  118. HttpEntity requestEntity = MultipartEntityBuilder.create().addPart("media",
  119. new FileBody(file, ContentType.APPLICATION_OCTET_STREAM, file.getName())).build();
  120. httpPost.setEntity(requestEntity);
  121. try {
  122. response = httpClient.execute(httpPost, new BasicHttpContext());
  123. if (response.getStatusLine().getStatusCode() != 200) {
  124. System.out.println("request url failed, http code=" + response.getStatusLine().getStatusCode()
  125. + ", url=" + url);
  126. return null;
  127. }
  128. HttpEntity entity = response.getEntity();
  129. if (entity != null) {
  130. String resultStr = EntityUtils.toString(entity, "utf-8");
  131. JSONObject result = JSON.parseObject(resultStr);
  132. if (result.getInteger("errcode") == 0) {
  133. // 成功
  134. result.remove("errcode");
  135. result.remove("errmsg");
  136. return result;
  137. } else {
  138. System.out.println("request url=" + url + ",return value=");
  139. System.out.println(resultStr);
  140. int errCode = result.getInteger("errcode");
  141. String errMsg = result.getString("errmsg");
  142. throw new Exception("code" + errCode + ";msg:" + errMsg);
  143. }
  144. }
  145. } catch (Exception e) {
  146. System.out.println("request url=" + url + ", exception, msg=" + e.getMessage());
  147. e.printStackTrace();
  148. } finally {
  149. if (response != null) try {
  150. response.close();
  151. } catch (IOException e) {
  152. e.printStackTrace();
  153. }
  154. }
  155. return null;
  156. }
  157. public static JSONObject downloadMedia(String url, String fileDir) {
  158. HttpGet httpGet = new HttpGet(url);
  159. CloseableHttpResponse response = null;
  160. CloseableHttpClient httpClient = HttpClients.createDefault();
  161. RequestConfig requestConfig = RequestConfig.custom().setSocketTimeout(2000).setConnectTimeout(2000).build();
  162. httpGet.setConfig(requestConfig);
  163. try {
  164. HttpContext localContext = new BasicHttpContext();
  165. response = httpClient.execute(httpGet, localContext);
  166. RedirectLocations locations = (RedirectLocations) localContext.getAttribute(HttpClientContext.REDIRECT_LOCATIONS);
  167. if (locations != null) {
  168. URI downloadUrl = locations.getAll().get(0);
  169. String filename = downloadUrl.toURL().getFile();
  170. System.out.println("downloadUrl=" + downloadUrl);
  171. File downloadFile = new File(fileDir + File.separator + filename);
  172. FileUtils.writeByteArrayToFile(downloadFile, EntityUtils.toByteArray(response.getEntity()));
  173. JSONObject obj = new JSONObject();
  174. obj.put("downloadFilePath", downloadFile.getAbsolutePath());
  175. obj.put("httpcode", response.getStatusLine().getStatusCode());
  176. return obj;
  177. } else {
  178. if (response.getStatusLine().getStatusCode() != 200) {
  179. System.out.println("request url failed, http code=" + response.getStatusLine().getStatusCode()
  180. + ", url=" + url);
  181. return null;
  182. }
  183. HttpEntity entity = response.getEntity();
  184. if (entity != null) {
  185. String resultStr = EntityUtils.toString(entity, "utf-8");
  186. JSONObject result = JSON.parseObject(resultStr);
  187. if (result.getInteger("errcode") == 0) {
  188. // 成功
  189. result.remove("errcode");
  190. result.remove("errmsg");
  191. return result;
  192. } else {
  193. System.out.println("request url=" + url + ",return value=");
  194. System.out.println(resultStr);
  195. int errCode = result.getInteger("errcode");
  196. String errMsg = result.getString("errmsg");
  197. throw new Exception("code" + errCode + ";msg:" + errMsg);
  198. }
  199. }
  200. }
  201. } catch (Exception e) {
  202. System.out.println("request url=" + url + ", exception, msg=" + e.getMessage());
  203. e.printStackTrace();
  204. } finally {
  205. if (response != null) try {
  206. response.close();
  207. } catch (IOException e) {
  208. e.printStackTrace();
  209. }
  210. }
  211. return null;
  212. }
  213. }