From a0ab817214fcee3e20cbfb9596539d2379160db2 Mon Sep 17 00:00:00 2001 From: zxy <2074995204@qq.com> Date: Tue, 29 Apr 2025 18:15:27 +0800 Subject: [PATCH] zxy --- .../main/java/com/utils/HttpClientUtils.java | 33 ++++++++++++------- 1 file changed, 22 insertions(+), 11 deletions(-) diff --git a/back/src/main/java/com/utils/HttpClientUtils.java b/back/src/main/java/com/utils/HttpClientUtils.java index fd6aae55..a4ff1355 100644 --- a/back/src/main/java/com/utils/HttpClientUtils.java +++ b/back/src/main/java/com/utils/HttpClientUtils.java @@ -5,38 +5,49 @@ import java.io.InputStreamReader; import java.net.HttpURLConnection; import java.net.URL; - /** * HttpClient工具类 + * 该类提供了执行HTTP GET请求的方法,用于从指定的URL获取数据。 */ public class HttpClientUtils { /** - * @param uri - * @return String - * @description get请求方式 + * 执行HTTP GET请求并获取响应结果。 + * + * @param uri 要请求的URL地址,是一个字符串形式的URI。 + * @return 返回从服务器获取的响应内容,如果请求失败或出现异常则返回null。 + * @description 该方法通过创建URL对象和HttpURLConnection连接, + * 然后从连接的输入流中读取服务器返回的数据,并将其拼接成字符串返回。 * @author: long.he01 */ public static String doGet(String uri) { - + // 使用StringBuilder来构建最终的响应结果字符串,因为频繁的字符串拼接操作使用StringBuilder效率更高 StringBuilder result = new StringBuilder(); try { + // 用于存储每一行读取到的响应数据 String res = ""; + // 根据传入的URI创建URL对象 URL url = new URL(uri); + // 打开与URL的连接,并将其强转为HttpURLConnection类型,以便进行HTTP相关的操作 HttpURLConnection conn = (HttpURLConnection) url.openConnection(); + // 创建一个BufferedReader,用于从连接的输入流中读取数据,指定字符编码为UTF-8 BufferedReader in = new BufferedReader(new InputStreamReader(conn.getInputStream(), "UTF-8")); + // 用于存储从输入流中读取的每一行数据 String line; + // 循环读取输入流中的数据,直到读取到文件末尾(readLine()返回null表示文件末尾) while ((line = in.readLine()) != null) { - res += line+"\n"; + // 将读取到的每一行数据拼接起来,并添加换行符 + res += line + "\n"; } + // 关闭BufferedReader,释放资源 in.close(); + // 返回拼接好的响应结果字符串 return res; - }catch (Exception e) { + } catch (Exception e) { + // 如果在请求过程中发生异常,打印异常堆栈信息 e.printStackTrace(); + // 请求失败,返回null return null; } - } - -} - +} \ No newline at end of file