HttpClientUtils增加文件流下载方法
This commit is contained in:
@@ -13,6 +13,7 @@ import javax.net.ssl.SSLContext;
|
|||||||
import javax.net.ssl.SSLEngine;
|
import javax.net.ssl.SSLEngine;
|
||||||
import javax.net.ssl.TrustManager;
|
import javax.net.ssl.TrustManager;
|
||||||
import javax.net.ssl.X509ExtendedTrustManager;
|
import javax.net.ssl.X509ExtendedTrustManager;
|
||||||
|
import java.io.InputStream;
|
||||||
import java.net.Socket;
|
import java.net.Socket;
|
||||||
import java.net.URI;
|
import java.net.URI;
|
||||||
import java.net.http.HttpClient;
|
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) {
|
public static HttpClient createHttpClient(long seconds) {
|
||||||
HttpClient client;
|
HttpClient client;
|
||||||
try {
|
try {
|
||||||
|
|||||||
Reference in New Issue
Block a user