From bac5cf2ff979320b06ad61d01984f14804d552f2 Mon Sep 17 00:00:00 2001 From: wangsiyuan <2392948297@qq.com> Date: Fri, 8 Dec 2023 18:09:25 +0800 Subject: [PATCH] =?UTF-8?q?=E5=88=9B=E5=BB=BA=20Request.java?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/kimgo/wepush/request/Request.java | 60 +++++++++++++++++++ 1 file changed, 60 insertions(+) create mode 100644 src/main/java/com/kimgo/wepush/request/Request.java diff --git a/src/main/java/com/kimgo/wepush/request/Request.java b/src/main/java/com/kimgo/wepush/request/Request.java new file mode 100644 index 0000000..990b5ae --- /dev/null +++ b/src/main/java/com/kimgo/wepush/request/Request.java @@ -0,0 +1,60 @@ +package com.kimgo.wepush.request; + +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.kimgo.wepush.model.TextCardMessage; +import com.kimgo.wepush.response.QyWeChatSendMessageApiResponse; +import com.kimgo.wepush.service.QyWeChatURLService; +import com.kimgo.wepush.service.TokenService; +import okhttp3.MediaType; +import okhttp3.OkHttpClient; +import okhttp3.RequestBody; +import okhttp3.Response; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import java.io.IOException; + +public class Request { + private final Logger logger = LoggerFactory.getLogger(Request.class); + + public QyWeChatSendMessageApiResponse okhttpRequest(String url,String accessToken,T object){ + OkHttpClient client = new OkHttpClient(); + + // 使用Jackson进行序列化 + ObjectMapper objectMapper = new ObjectMapper(); + String jsonBody = null; + try { + jsonBody = objectMapper.writeValueAsString(object); + logger.info("jsonBody: {}",jsonBody); + } catch (JsonProcessingException e) { + logger.error("JSON processing error", e); + return null; + } + // 构建请求体 + RequestBody body = RequestBody.create(MediaType.parse("application/json; charset=utf-8"), jsonBody); + okhttp3.Request request = new okhttp3.Request.Builder().url(url).post(body).build(); + try (Response response = client.newCall(request).execute()) { + String responseBody = response.body().string(); + logger.info("request sendMessage api ResponseBody: {}", responseBody); + + ObjectMapper objectMapper1 = new ObjectMapper(); + QyWeChatSendMessageApiResponse apiResponse = objectMapper1.readValue(responseBody, QyWeChatSendMessageApiResponse.class); + + if (apiResponse.getErrcode() == 0) { + logger.debug("Request qyWeChat Success."); + return apiResponse; + } else if (apiResponse.getErrcode() == 42001 || apiResponse.getErrcode() == 40014) { + logger.info("Access token expired. Refreshing token..."); + // 一个方法来刷新accessToken + return apiResponse; + } else { + // 处理其他错误情况 + logger.error("Error: {}", apiResponse.getErrmsg()); + return null; + } + } catch (IOException e) { + logger.error("OkHttp request error", e); + return null; + } + } +}