From 5f3cf501f9f6c216df17ee8af6618b55b537d21a Mon Sep 17 00:00:00 2001
From: yanghui <2536613402@qq.com>
Date: 星期五, 21 十月 2022 16:57:54 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/huacheng_test' into local_20221014
---
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/HttpClientUtil.java | 199 +++++++++++++++++++++++++++++++++++--------------
1 files changed, 141 insertions(+), 58 deletions(-)
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/HttpClientUtil.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/HttpClientUtil.java
index 5bf6c6f..4898691 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/HttpClientUtil.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/HttpClientUtil.java
@@ -1,30 +1,30 @@
package com.panzhihua.common.utlis;
-
-import com.panzhihua.common.constants.HttpConstant;
-import lombok.extern.slf4j.Slf4j;
-import org.apache.http.Header;
-import org.apache.http.HttpEntity;
-import org.apache.http.HttpResponse;
-import org.apache.http.client.HttpClient;
-import org.apache.http.client.methods.HttpGet;
-import org.apache.http.client.methods.HttpPost;
-import org.apache.http.entity.StringEntity;
-import org.apache.http.impl.client.DefaultHttpClient;
-import org.apache.http.message.BasicHeader;
-import org.apache.http.util.EntityUtils;
-import org.springframework.util.ObjectUtils;
-
-import java.io.BufferedReader;
-import java.io.IOException;
-import java.io.InputStreamReader;
-import java.io.OutputStreamWriter;
+import java.io.*;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLConnection;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
+
+import org.apache.http.Header;
+import org.apache.http.HttpEntity;
+import org.apache.http.HttpResponse;
+import org.apache.http.client.HttpClient;
+import org.apache.http.client.methods.HttpGet;
+import org.apache.http.client.methods.HttpPost;
+import org.apache.http.client.methods.HttpUriRequest;
+import org.apache.http.entity.StringEntity;
+import org.apache.http.impl.client.DefaultHttpClient;
+import org.apache.http.impl.client.HttpClients;
+import org.apache.http.message.BasicHeader;
+import org.apache.http.util.EntityUtils;
+import org.springframework.util.ObjectUtils;
+
+import com.panzhihua.common.constants.HttpConstant;
+
+import lombok.extern.slf4j.Slf4j;
/**
* @program: springcloud_k8s_panzhihuazhihuishequ
@@ -36,21 +36,28 @@
public class HttpClientUtil {
/**
* 通过post方式调用http接口
- * @param url url路径
- * @param jsonParam json格式的参数
- * @param reSend 重发次数
- * @param headerKey header键值
- * @param headerValue headervalue
+ *
+ * @param url
+ * url路径
+ * @param jsonParam
+ * json格式的参数
+ * @param reSend
+ * 重发次数
+ * @param headerKey
+ * header键值
+ * @param headerValue
+ * headervalue
* @return
* @throws Exception
*/
- public static String sendPostByJson(String url, String jsonParam,int reSend,String headerKey,String headerValue) {
- //声明返回结果
+ public static String sendPostByJson(String url, String jsonParam, int reSend, String headerKey,
+ String headerValue) {
+ // 声明返回结果
String result = "";
- //开始请求API接口时间
- long startTime=System.currentTimeMillis();
- //请求API接口的响应时间
- long endTime= 0L;
+ // 开始请求API接口时间
+ long startTime = System.currentTimeMillis();
+ // 请求API接口的响应时间
+ long endTime = 0L;
HttpEntity httpEntity = null;
HttpResponse httpResponse = null;
HttpClient httpClient = null;
@@ -59,68 +66,69 @@
httpClient = HttpClientFactory.getInstance().getHttpClient();
// 设置请求头和报文
HttpPost httpPost = HttpClientFactory.getInstance().httpPost(url);
- Header header=new BasicHeader("Accept-Encoding",null);
+ Header header = new BasicHeader("Accept-Encoding", null);
httpPost.setHeader(header);
if (!ObjectUtils.isEmpty(headerKey)) {
- httpPost.setHeader(headerKey,headerValue);
+ httpPost.setHeader(headerKey, headerValue);
}
// 设置报文和通讯格式
StringEntity stringEntity = new StringEntity(jsonParam, HttpConstant.UTF8_ENCODE);
stringEntity.setContentEncoding(HttpConstant.UTF8_ENCODE);
stringEntity.setContentType(HttpConstant.APPLICATION_JSON);
httpPost.setEntity(stringEntity);
- log.info("请求{}接口的参数为{}",url,jsonParam);
- //执行发送,获取相应结果
+// log.info("请求{}接口的参数为{}", url, jsonParam);
+ // 执行发送,获取相应结果
httpResponse = httpClient.execute(httpPost);
- httpEntity= httpResponse.getEntity();
+ httpEntity = httpResponse.getEntity();
result = EntityUtils.toString(httpEntity);
} catch (Exception e) {
- log.error("请求{}接口出现异常",url,e);
+ log.error("请求{}接口出现异常", url, e);
if (reSend > 0) {
- log.info("请求{}出现异常:{},进行重发。进行第{}次重发",url,e.getMessage(),(HttpConstant.REQ_TIMES-reSend +1));
- result = sendPostByJson(url, jsonParam, reSend - 1,headerKey,headerValue);
+ log.info("请求{}出现异常:{},进行重发。进行第{}次重发", url, e.getMessage(), (HttpConstant.REQ_TIMES - reSend + 1));
+ result = sendPostByJson(url, jsonParam, reSend - 1, headerKey, headerValue);
if (result != null && !"".equals(result)) {
return result;
}
}
- }finally {
+ } finally {
try {
EntityUtils.consume(httpEntity);
} catch (IOException e) {
- log.error("http请求释放资源异常",e);
+ log.error("http请求释放资源异常", e);
}
}
- //请求接口的响应时间
- endTime=System.currentTimeMillis();
- log.info("请求{}接口的响应报文内容为{},本次请求API接口的响应时间为:{}毫秒",url,result,(endTime-startTime));
+ // 请求接口的响应时间
+ endTime = System.currentTimeMillis();
+// log.info("请求{}接口的响应报文内容为{},本次请求API接口的响应时间为:{}毫秒", url, result, (endTime - startTime));
return result;
}
/**
* 使用http请求调用接口,参数类型为xml
- * @param urlStr 请求地址
- * @param data 请求参数
- * @return 调用结果
+ *
+ * @param urlStr
+ * 请求地址
+ * @param data
+ * 请求参数
+ * @return 调用结果
*/
- public static String httpsRequest(String urlStr,String data) {
+ public static String httpsRequest(String urlStr, String data) {
try {
URL url = new URL(urlStr);
URLConnection con = url.openConnection();
con.setDoOutput(true);
-// con.setRequestProperty("Pragma:", "no-cache");
+ // con.setRequestProperty("Pragma:", "no-cache");
con.setRequestProperty("Cache-Control", "no-cache");
con.setRequestProperty("Content-Type", "text/xml");
- OutputStreamWriter out = new OutputStreamWriter(con
- .getOutputStream());
+ OutputStreamWriter out = new OutputStreamWriter(con.getOutputStream());
log.info("urlStr=" + urlStr);
log.info("xmlInfo=" + data);
out.write(new String(data.getBytes("UTF-8")));
out.flush();
out.close();
- BufferedReader br = new BufferedReader(new InputStreamReader(con
- .getInputStream()));
+ BufferedReader br = new BufferedReader(new InputStreamReader(con.getInputStream()));
String line = "";
StringBuffer sb = new StringBuffer();
for (line = br.readLine(); line != null; line = br.readLine()) {
@@ -134,7 +142,6 @@
}
return "";
}
-
/**
* http请求工具类,get请求
@@ -158,7 +165,7 @@
key = iterator.next();
Object val = params.get(key);
if (val instanceof List) {
- List v = (List) val;
+ List v = (List)val;
for (Object o : v) {
stringBuilder.append(key).append("=").append(o.toString()).append("&");
}
@@ -178,7 +185,7 @@
log.info(errorLog);
throw new Exception(url + errorLog);
}
- //读取返回信息
+ // 读取返回信息
String charSet = "utf-8";
if (resonseCharSet != null && resonseCharSet.length > 0)
charSet = resonseCharSet[0];
@@ -204,8 +211,10 @@
/**
* http请求工具类,post请求
*
- * @param url url
- * @param param 参数值 仅支持String
+ * @param url
+ * url
+ * @param param
+ * 参数值 仅支持String
* @return
* @throws Exception
*/
@@ -227,13 +236,14 @@
log.info(errorLog);
throw new Exception(url + errorLog);
}
- //读取返回信息
+ // 读取返回信息
String output;
bufferedReader = new BufferedReader(new InputStreamReader(httpResponse.getEntity().getContent(), "utf-8"));
StringBuilder stringBuilder = new StringBuilder();
while ((output = bufferedReader.readLine()) != null) {
stringBuilder.append(output);
}
+ log.info("调用微信接口返回的参数:" + stringBuilder.toString());
return stringBuilder.toString();
} catch (IOException e) {
e.printStackTrace();
@@ -246,7 +256,80 @@
}
}
+ /**
+ * get请求
+ *
+ * @param url
+ * 请求地址(get请求时参数自己组装到url上)
+ * @param headerMap
+ * 请求头
+ * @return 响应文本
+ */
+ public static String get(String url, Map<String, String> headerMap, String param) {
+ // 请求地址,以及参数设置
+ HttpPost post = new HttpPost(url);
+ if (headerMap != null) {
+ for (Map.Entry<String, String> entry : headerMap.entrySet()) {
+ post.setHeader(entry.getKey(), entry.getValue());
+ }
+ }
+ if (StringUtils.isNotBlank(param)) {
+ log.info("参数值:{}", param);
+ HttpEntity httpEntity = new StringEntity(param, "utf-8");
+ post.setEntity(httpEntity);
+ }
+ // 执行请求,获取相应
+ return getRespString(post);
+ }
+ /**
+ * 获取响应信息(String)
+ */
+ public static String getRespString(HttpUriRequest request) {
+ // 获取响应流
+ InputStream in = getRespInputStream(request);
+ StringBuilder sb = new StringBuilder();
+ String line;
+
+ BufferedReader br = new BufferedReader(new InputStreamReader(in));
+ try {
+ while ((line = br.readLine()) != null) {
+ sb.append(line);
+ }
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ String str = sb.toString();
+ return str;
+ }
+
+ /**
+ * 获取响应信息(InputStream)
+ */
+ public static InputStream getRespInputStream(HttpUriRequest request) {
+ // 获取响应对象
+ HttpResponse response = null;
+ try {
+ response = HttpClients.createDefault().execute(request);
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ if (response == null) {
+ return null;
+ }
+ // 获取Entity对象
+ HttpEntity entity = response.getEntity();
+ // 获取响应信息流
+ InputStream in = null;
+ if (entity != null) {
+ try {
+ in = entity.getContent();
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ }
+ return in;
+ }
}
--
Gitblit v1.7.1