diff --git a/common/src/main/java/com/jeesite/common/web/http/HttpClientUtils.java b/common/src/main/java/com/jeesite/common/web/http/HttpClientUtils.java index 4b7fe368..e5c81143 100644 --- a/common/src/main/java/com/jeesite/common/web/http/HttpClientUtils.java +++ b/common/src/main/java/com/jeesite/common/web/http/HttpClientUtils.java @@ -13,6 +13,7 @@ import javax.net.ssl.SSLContext; import javax.net.ssl.SSLEngine; import javax.net.ssl.TrustManager; import javax.net.ssl.X509ExtendedTrustManager; +import java.io.InputStream; import java.net.Socket; import java.net.URI; import java.net.http.HttpClient; @@ -182,6 +183,41 @@ public class HttpClientUtils { } } + /** + * HTTP 的 GET 请求,返回文件流 + */ + public static InputStream getInputStream(String url) { + return getInputStream(url, null); + } + + /** + * HTTP 的 GET 请求,传递 Map 格式参数,返回文件流 + */ + public static InputStream getInputStream(String url, Map dataMap) { + HttpRequest request = HttpRequest.newBuilder() + .uri(URI.create(buildUrl(url, dataMap, EncodeUtils.UTF_8))) + .GET() + .build(); + return executeRequestInputStream(request); + } + + /** + * 执行一个 http 请求,传递 HttpRequest 参数,返回文件流 + */ + public static InputStream executeRequestInputStream(HttpRequest request) { + try { + HttpResponse response = client.send(request, HttpResponse.BodyHandlers.ofInputStream()); + if (response.statusCode() == 200) { + return response.body(); + } else { + logger.info("URL: {} statusCode: {}", request.uri().toString(), response.statusCode()); + return null; + } + } catch (Exception e) { + throw new RuntimeException(e); + } + } + public static HttpClient createHttpClient(long seconds) { HttpClient client; try {