HttpClientUtils增加文件流下载方法

This commit is contained in:
thinkgem
2025-04-08 15:35:59 +08:00
parent 48e639f5d4
commit 9684e75697

View File

@@ -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<String, String> 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<InputStream> 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 {