From 293c9257aad000bf8563dcebda058638daa7dbb7 Mon Sep 17 00:00:00 2001 From: ddaodan <731882332@qq.com> Date: Fri, 12 Jul 2024 19:32:44 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=8D=A2jodd-http=EF=BC=8C=E8=BF=9B?= =?UTF-8?q?=E4=B8=80=E6=AD=A5=E5=8E=8B=E7=BC=A9=E6=8F=92=E4=BB=B6=E5=A4=A7?= =?UTF-8?q?=E5=B0=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- build.gradle | 3 +- .../ddaodan/MineChatGPT/CommandHandler.java | 41 ++++++++----------- 2 files changed, 17 insertions(+), 27 deletions(-) diff --git a/build.gradle b/build.gradle index e8c892c..7830863 100644 --- a/build.gradle +++ b/build.gradle @@ -20,8 +20,7 @@ repositories { dependencies { compileOnly "org.spigotmc:spigot-api:1.13-R0.1-SNAPSHOT" - implementation 'org.apache.httpcomponents:httpclient:4.5.14' - //implementation 'org.apache.httpcomponents.client5:httpclient5:5.4-beta1' + implementation 'org.jodd:jodd-http:6.3.0' implementation 'org.json:json:20231013' } diff --git a/src/main/java/com/ddaodan/MineChatGPT/CommandHandler.java b/src/main/java/com/ddaodan/MineChatGPT/CommandHandler.java index f503db0..15d4938 100644 --- a/src/main/java/com/ddaodan/MineChatGPT/CommandHandler.java +++ b/src/main/java/com/ddaodan/MineChatGPT/CommandHandler.java @@ -3,12 +3,6 @@ package com.ddaodan.MineChatGPT; import org.bukkit.command.Command; import org.bukkit.command.CommandExecutor; import org.bukkit.command.CommandSender; -import org.apache.http.client.methods.CloseableHttpResponse; -import org.apache.http.client.methods.HttpPost; -import org.apache.http.entity.StringEntity; -import org.apache.http.impl.client.CloseableHttpClient; -import org.apache.http.impl.client.HttpClients; -import org.apache.http.util.EntityUtils; import org.json.JSONArray; import org.json.JSONObject; @@ -16,6 +10,8 @@ import java.util.logging.Level; import java.util.logging.Logger; import java.util.List; +import jodd.http.HttpRequest; +import jodd.http.HttpResponse; public class CommandHandler implements CommandExecutor { private final Main plugin; private final ConfigManager configManager; @@ -97,26 +93,21 @@ public class CommandHandler implements CommandExecutor { messages.put(message); json.put("messages", messages); - try (CloseableHttpClient httpClient = HttpClients.createDefault()) { - HttpPost request = new HttpPost(configManager.getBaseUrl() + "/chat/completions"); - request.setHeader("Content-Type", "application/json"); - request.setHeader("Authorization", "Bearer " + configManager.getApiKey()); - request.setEntity(new StringEntity(json.toString(), "UTF-8")); + HttpRequest request = HttpRequest.post(configManager.getBaseUrl() + "/chat/completions") + .header("Content-Type", "application/json") + .header("Authorization", "Bearer " + configManager.getApiKey()) + .body(json.toString()); - try (CloseableHttpResponse response = httpClient.execute(request)) { - if (response.getStatusLine().getStatusCode() == 200) { - String responseBody = EntityUtils.toString(response.getEntity(), "UTF-8"); - JSONObject jsonResponse = new JSONObject(responseBody); - String answer = jsonResponse.getJSONArray("choices").getJSONObject(0).getJSONObject("message").getString("content"); - sender.sendMessage(configManager.getChatGPTResponseMessage().replace("%s", answer)); - } else { - String errorBody = EntityUtils.toString(response.getEntity(), "UTF-8"); - logger.log(Level.SEVERE, "Failed to get a response from ChatGPT: " + errorBody); - sender.sendMessage(configManager.getChatGPTErrorMessage()); - } - } - } catch (Exception e) { - logger.log(Level.SEVERE, "Failed to contact ChatGPT: " + e.getMessage(), e); + HttpResponse response = request.send(); + + if (response.statusCode() == 200) { + String responseBody = response.bodyText(); + JSONObject jsonResponse = new JSONObject(responseBody); + String answer = jsonResponse.getJSONArray("choices").getJSONObject(0).getJSONObject("message").getString("content"); + sender.sendMessage(configManager.getChatGPTResponseMessage().replace("%s", answer)); + } else { + String errorBody = response.bodyText(); + logger.log(Level.SEVERE, "Failed to get a response from ChatGPT: " + errorBody); sender.sendMessage(configManager.getChatGPTErrorMessage()); } }