HuToolUtils.java 7.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200
  1. package com.uas.eis.utils;
  2. import cn.hutool.http.HttpException;
  3. import cn.hutool.http.HttpRequest;
  4. import cn.hutool.http.HttpResponse;
  5. import com.alibaba.fastjson.JSON;
  6. import com.uas.eis.vo.stkVo.HttpResultResponse;
  7. import lombok.extern.slf4j.Slf4j;
  8. import java.util.Map;
  9. @Slf4j
  10. public class HuToolUtils {
  11. /**
  12. * 超时毫秒数。http的连接与读取
  13. */
  14. private static final int TIME_OUT_MILLISECONDS = 60000;
  15. /**
  16. * Content-Type
  17. */
  18. private static final String CONTENT_TYPE_JSON = "application/json; charset=utf-8";
  19. private static final String CONTENT_TYPE_FORM = "multipart/form-data";
  20. /**
  21. * GET请求
  22. */
  23. public static HttpResultResponse get(String url) {
  24. return get(url, null);
  25. }
  26. public static HttpResultResponse get(String url, Map<String, String> headerMap) {
  27. HttpResultResponse httpResultResponse = new HttpResultResponse();
  28. try {
  29. HttpResponse response = HttpRequest
  30. .get(url)
  31. .timeout(TIME_OUT_MILLISECONDS)
  32. .addHeaders(headerMap)
  33. .execute();
  34. if (!response.isOk()) {
  35. log.error("HttpUtils get 响应失败. url={},headerMap={}, response={}", url, headerMap, response.toString());
  36. return httpResultResponse.buildError();
  37. }
  38. return httpResultResponse.buildSuccess(response.body());
  39. } catch (HttpException e) {
  40. log.error("HttpUtils get HttpException异常. url={},headerMap={}", url, headerMap, e);
  41. return httpResultResponse.buildError(e.getMessage());
  42. } catch (Exception e) {
  43. log.error("HttpUtils get Exception异常. url={},headerMap={}", url, headerMap, e);
  44. return httpResultResponse.buildError(e.getMessage());
  45. }
  46. }
  47. public static HttpResultResponse post(String url, Object postBody) {
  48. return post(url, postBody, null);
  49. }
  50. /**
  51. * post 请求
  52. *
  53. * @param url 请求链接
  54. * @param postBody 请求对象 or 请求json字符串
  55. * @param headerMap 请求头map
  56. *
  57. * @return HttpResultResponse
  58. */
  59. public static HttpResultResponse post(String url, Object postBody, Map<String, String> headerMap) {
  60. HttpResultResponse httpResultResponse = new HttpResultResponse();
  61. HttpResponse response = null;
  62. try {
  63. HttpRequest httpRequest = HttpRequest
  64. .post(url)
  65. .timeout(TIME_OUT_MILLISECONDS)
  66. .addHeaders(headerMap);
  67. if (postBody instanceof byte[]) {
  68. httpRequest.body((byte[]) postBody);
  69. } else if (postBody instanceof String) {
  70. httpRequest.body((String) postBody);
  71. } else {
  72. httpRequest.body(JSON.toJSONString(postBody), CONTENT_TYPE_JSON);
  73. }
  74. response = httpRequest.execute();
  75. if (!response.isOk()) {
  76. log.error("HttpUtils post 响应失败. url={},postBody={}, headerMap={}, response={}", url, postBody,
  77. headerMap, response.toString());
  78. return httpResultResponse.buildError(response.body());
  79. }
  80. return httpResultResponse.buildSuccess(response.body());
  81. } catch (HttpException e) {
  82. log.error("HttpUtils post HttpException异常. url={},postBody={}, headerMap={}", url, postBody, headerMap, e);
  83. return httpResultResponse.buildError(e.getMessage());
  84. } catch (Exception e) {
  85. log.error("HttpUtils post Exception异常. url={},postBody={},headerMap={}", url, postBody, headerMap, e);
  86. return httpResultResponse.buildError(e.getMessage());
  87. } finally {
  88. if (response != null) {
  89. response.close(); // 确保关闭响应
  90. }
  91. }
  92. }
  93. public static HttpResultResponse postByForm(String url, Object postBody, Map<String, String> headerMap) {
  94. HttpResultResponse httpResultResponse = new HttpResultResponse();
  95. String body;
  96. if (postBody instanceof String) {
  97. body = (String) postBody;
  98. } else {
  99. body = JSON.toJSONString(postBody);
  100. }
  101. try {
  102. HttpResponse response = HttpRequest
  103. .post(url)
  104. .body(body, CONTENT_TYPE_FORM)
  105. .timeout(TIME_OUT_MILLISECONDS)
  106. .addHeaders(headerMap)
  107. .execute();
  108. if (!response.isOk()) {
  109. log.error("HttpUtils post 响应失败. url={},postBody={}, headerMap={}, response={}", url, postBody,
  110. headerMap, response.toString());
  111. return httpResultResponse.buildError();
  112. }
  113. return httpResultResponse.buildSuccess(response.body());
  114. } catch (HttpException e) {
  115. log.error("HttpUtils post HttpException异常. url={},postBody={}, headerMap={}", url, postBody, headerMap, e);
  116. return httpResultResponse.buildError(e.getMessage());
  117. } catch (Exception e) {
  118. log.error("HttpUtils post Exception异常. url={},postBody={},headerMap={}", url, postBody, headerMap, e);
  119. return httpResultResponse.buildError(e.getMessage());
  120. }
  121. }
  122. /**
  123. * put 请求, 无header
  124. *
  125. * @param url 链接
  126. * @param putBody 请求对象 or 请求json字符串
  127. *
  128. * @return HttpResultResponse
  129. */
  130. public static HttpResultResponse put(String url, Object putBody) {
  131. return put(url, putBody, null);
  132. }
  133. /**
  134. * put 请求
  135. *
  136. * @param url 请求链接
  137. * @param putBody 请求对象 or 请求json字符串
  138. * @param headerMap 请求头map
  139. *
  140. * @return HttpResultResponse
  141. */
  142. public static HttpResultResponse put(String url, Object putBody, Map<String, String> headerMap) {
  143. HttpResultResponse httpResultResponse = new HttpResultResponse();
  144. try {
  145. HttpRequest httpRequest = HttpRequest
  146. .put(url)
  147. .timeout(TIME_OUT_MILLISECONDS)
  148. .addHeaders(headerMap);
  149. if (putBody instanceof byte[]) {
  150. httpRequest.body((byte[]) putBody);
  151. } else if (putBody instanceof String) {
  152. httpRequest.body((String) putBody);
  153. } else {
  154. httpRequest.body(JSON.toJSONString(putBody), CONTENT_TYPE_JSON);
  155. }
  156. HttpResponse response = httpRequest.execute();
  157. if (!response.isOk()) {
  158. log.error("HttpUtil put 响应失败. url={},putBody={}, headerMap={}, response={}", url, putBody,
  159. headerMap, response.toString());
  160. return httpResultResponse.buildError();
  161. }
  162. return httpResultResponse.buildSuccess(response.body());
  163. } catch (HttpException e) {
  164. log.error("HttpUtil put HttpException异常. url={},putBody={}, headerMap={}", url, putBody, headerMap, e);
  165. return httpResultResponse.buildError(e.getMessage());
  166. } catch (Exception e) {
  167. log.error("HttpUtil put Exception异常. url={},putBody={},headerMap={}", url, putBody, headerMap, e);
  168. return httpResultResponse.buildError(e.getMessage());
  169. }
  170. }
  171. }