From 6d448be35bff1c340a6cc5b7c62086874f8c68c4 Mon Sep 17 00:00:00 2001 From: xhxu Date: Fri, 4 Nov 2022 10:53:41 +0800 Subject: [PATCH] =?UTF-8?q?//=E7=B1=BB=E7=9B=AE-1.1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../web/api/TtWebGetRequestExecutor.java | 4 +- .../TtWebGoodsCategoryGetRequestExecutor.java | 113 ++++++++++++++++++ .../web/api/TtWebGoodsGetRequestExecutor.java | 4 +- .../web/api/impl/TtWebGoodsServiceImpl.java | 2 +- .../mapper/TtGoodsCategoryMapper.xml | 2 +- 5 files changed, 119 insertions(+), 6 deletions(-) create mode 100644 mallinkService/src/main/java/com/iformall/douyin/web/api/TtWebGoodsCategoryGetRequestExecutor.java diff --git a/mallinkService/src/main/java/com/iformall/douyin/web/api/TtWebGetRequestExecutor.java b/mallinkService/src/main/java/com/iformall/douyin/web/api/TtWebGetRequestExecutor.java index 02df8bc91..5090de1dc 100644 --- a/mallinkService/src/main/java/com/iformall/douyin/web/api/TtWebGetRequestExecutor.java +++ b/mallinkService/src/main/java/com/iformall/douyin/web/api/TtWebGetRequestExecutor.java @@ -65,8 +65,8 @@ public class TtWebGetRequestExecutor implements RequestExecutor HttpGet httpGet = new HttpGet(uri); httpGet.addHeader("Content-Type","application/json"); httpGet.addHeader("access-token",access_token); - logger.info("get请求地址uri{}"+uri); - logger.info("header-----access_token{}"+access_token); +// logger.info("get请求地址uri{}"+uri); +// logger.info("header-----access_token{}"+access_token); if (requestHttp.getRequestHttpProxy() != null) { RequestConfig config = RequestConfig.custom().setProxy(requestHttp.getRequestHttpProxy()).build(); diff --git a/mallinkService/src/main/java/com/iformall/douyin/web/api/TtWebGoodsCategoryGetRequestExecutor.java b/mallinkService/src/main/java/com/iformall/douyin/web/api/TtWebGoodsCategoryGetRequestExecutor.java new file mode 100644 index 000000000..7607a4051 --- /dev/null +++ b/mallinkService/src/main/java/com/iformall/douyin/web/api/TtWebGoodsCategoryGetRequestExecutor.java @@ -0,0 +1,113 @@ +package com.iformall.douyin.web.api; + +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONObject; +import me.chanjar.weixin.common.WxType; +import me.chanjar.weixin.common.error.WxError; +import me.chanjar.weixin.common.error.WxErrorException; +import me.chanjar.weixin.common.util.http.RequestExecutor; +import me.chanjar.weixin.common.util.http.RequestHttp; +import me.chanjar.weixin.common.util.http.ResponseHandler; +import me.chanjar.weixin.common.util.http.apache.Utf8ResponseHandler; +import org.apache.commons.lang3.StringUtils; +import org.apache.http.HttpHost; +import org.apache.http.client.config.RequestConfig; +import org.apache.http.client.methods.CloseableHttpResponse; +import org.apache.http.client.methods.HttpGet; +import org.apache.http.impl.client.CloseableHttpClient; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import java.io.IOException; +import java.util.regex.Matcher; +import java.util.regex.Pattern; + +/** + * . + * + * @author ecoolper + * @date 2017/5/4 + */ +public class TtWebGoodsCategoryGetRequestExecutor implements RequestExecutor { + private final Logger logger = LoggerFactory.getLogger(this.getClass()); + + protected RequestHttp requestHttp; + + public TtWebGoodsCategoryGetRequestExecutor(RequestHttp requestHttp) { + this.requestHttp = requestHttp; + } + + @Override + public void execute(String uri, String data, ResponseHandler handler, WxType wxType) throws WxErrorException, IOException { + handler.handle(this.execute(uri, data, wxType)); + } + + @Override + public String execute(String uri, String queryParam, WxType wxType) throws WxErrorException, IOException { + + String access_token = handleUrl(uri); + if(StringUtils.isBlank(access_token)){ + WxError wxError = WxError.fromJson("{\n" + + " \"description\": \"未找到access_token\",\n" + + " \"error_code\": -1\n" + + " }"); + throw new WxErrorException(wxError); + } + + if (queryParam != null) { + if (uri.indexOf('?') == -1) { + uri += '?'; + } + uri += uri.endsWith("?") ? queryParam : '&' + queryParam; + } + + HttpGet httpGet = new HttpGet(uri); + httpGet.addHeader("Content-Type","application/json"); + httpGet.addHeader("access-token",access_token); +// logger.info("get请求地址uri{}"+uri); +// logger.info("header-----access_token{}"+access_token); + + if (requestHttp.getRequestHttpProxy() != null) { + RequestConfig config = RequestConfig.custom().setProxy(requestHttp.getRequestHttpProxy()).build(); + httpGet.setConfig(config); + } + + try (CloseableHttpResponse response = requestHttp.getRequestHttpClient().execute(httpGet)) { + String responseContent = Utf8ResponseHandler.INSTANCE.handleResponse(response); + logger.info("response{}"+responseContent); + int code = 0; + String msg = null; + try { + JSONObject jsonObject = JSON.parseObject(responseContent); + JSONObject base = jsonObject.getJSONObject("data"); + code = base.getInteger("error_code"); + msg = base.getString("description"); + }catch(Exception e){} + if(code != 0){ + throw new WxErrorException(WxError.builder().errorCode(code).errorMsg(msg).build()); + } + return responseContent; +// return data.toString(); + } finally { + httpGet.releaseConnection(); + } + } + + //去除链接中access_token 并返回 + private String handleUrl(String url){ + String access_token = null; + Pattern pXM = Pattern.compile("access_token=([^&]*)"); + Matcher mXM = pXM.matcher(url); + int i = 0; + while (mXM.find()) { + i++; + access_token = mXM.group(1); + } + if(i > 1){ + return null; + } +// url = url.replaceAll("&?access_token=[^&]*",""); + return access_token; + } + +} diff --git a/mallinkService/src/main/java/com/iformall/douyin/web/api/TtWebGoodsGetRequestExecutor.java b/mallinkService/src/main/java/com/iformall/douyin/web/api/TtWebGoodsGetRequestExecutor.java index 2c5115661..b529f8837 100644 --- a/mallinkService/src/main/java/com/iformall/douyin/web/api/TtWebGoodsGetRequestExecutor.java +++ b/mallinkService/src/main/java/com/iformall/douyin/web/api/TtWebGoodsGetRequestExecutor.java @@ -64,8 +64,8 @@ public class TtWebGoodsGetRequestExecutor implements RequestExecutor categoryGet(Integer category_id, Integer account_id) throws WxErrorException { - TtWebGoodsGetRequestExecutor getExecutor = new TtWebGoodsGetRequestExecutor(this.service.getRequestHttp()); + TtWebGoodsCategoryGetRequestExecutor getExecutor = new TtWebGoodsCategoryGetRequestExecutor(this.service.getRequestHttp()); String apiUrl = this.service.getTtWebConfig().getApiBegin().getPrefix() + this.CATEGORY_GET; String param = "category_id=" + category_id; if(account_id != null){ diff --git a/mallinkService/src/main/resources/mapper/TtGoodsCategoryMapper.xml b/mallinkService/src/main/resources/mapper/TtGoodsCategoryMapper.xml index 248a134bf..23a29490f 100644 --- a/mallinkService/src/main/resources/mapper/TtGoodsCategoryMapper.xml +++ b/mallinkService/src/main/resources/mapper/TtGoodsCategoryMapper.xml @@ -7,7 +7,7 @@ - +