perf(http): 为 OkHttpClient 添加写超时设置

This commit is contained in:
曾文豪
2025-06-27 13:29:56 +08:00
parent 94f93f8a80
commit 6d91cc7c13

View File

@@ -23,7 +23,8 @@ public class OkHttpUtil {
public static OkHttpClient.Builder ofHttpClient() {
OkHttpClient.Builder builder = new OkHttpClient.Builder()
.connectTimeout(OkHttpConfig.GLOBAL_TIMEOUT, TimeUnit.MILLISECONDS)
.readTimeout(OkHttpConfig.GLOBAL_TIMEOUT, TimeUnit.MILLISECONDS);
.readTimeout(OkHttpConfig.GLOBAL_TIMEOUT, TimeUnit.MILLISECONDS)
.writeTimeout(OkHttpConfig.GLOBAL_TIMEOUT, TimeUnit.MILLISECONDS);
for (Interceptor interceptor : OkHttpConfig.INTERCEPTORS) {
builder.addInterceptor(interceptor);
@@ -32,6 +33,7 @@ public class OkHttpUtil {
return builder;
}
public static Request ofRequest(String method, String url, RequestBody body) {
return new Request.Builder()
.url(url).method(method, body).build();
@@ -74,7 +76,8 @@ public class OkHttpUtil {
///////////////////////////////////////////////////////////////////////////
// get请求
///////////////////////////////////////////////////////////////////////////
/// ////////////////////////////////////////////////////////////////////////
public static String get(String urlString) {
return get(urlString, OkHttpConfig.GLOBAL_TIMEOUT);
@@ -92,6 +95,8 @@ public class OkHttpUtil {
public static String get(String urlString, int timeout) {
try (Response execute = ofHttpClient().connectTimeout(timeout, TimeUnit.MILLISECONDS)
.readTimeout(timeout, TimeUnit.MILLISECONDS)
.writeTimeout(timeout, TimeUnit.MILLISECONDS)
.build().newCall(ofGet(urlString)).execute()) {
if (execute.body() != null) {
return execute.body().string();
@@ -104,7 +109,8 @@ public class OkHttpUtil {
///////////////////////////////////////////////////////////////////////////
// Post请求
///////////////////////////////////////////////////////////////////////////
/// ////////////////////////////////////////////////////////////////////////
public static String post(String urlString, Map<String, String> formMap) {
return post(urlString, formMap, OkHttpConfig.GLOBAL_TIMEOUT);
@@ -124,6 +130,8 @@ public class OkHttpUtil {
public static String post(String urlString, RequestBody body, int timeout) {
try (Response response = ofHttpClient().connectTimeout(timeout, TimeUnit.MILLISECONDS)
.readTimeout(timeout, TimeUnit.MILLISECONDS)
.writeTimeout(timeout, TimeUnit.MILLISECONDS)
.build().newCall(ofPost(urlString, body)).execute()) {
if (response.body() != null) {
return response.body().string();
@@ -136,7 +144,8 @@ public class OkHttpUtil {
///////////////////////////////////////////////////////////////////////////
// Download下载文件
///////////////////////////////////////////////////////////////////////////
/// ////////////////////////////////////////////////////////////////////////
public static File downloadFile(String url, String destFile) {
return downloadFile(url, FileUtil.file(destFile));
@@ -146,6 +155,7 @@ public class OkHttpUtil {
try (Response response = ofHttpClient()
.connectTimeout(0, TimeUnit.MILLISECONDS)
.readTimeout(0, TimeUnit.MILLISECONDS)
.writeTimeout(0, TimeUnit.MILLISECONDS)
.build().newCall(ofGet(url)).execute()) {
if (response.isSuccessful() && response.body() != null) {
FileUtil.writeFromStream(response.body().byteStream(), destFile);
@@ -160,6 +170,7 @@ public class OkHttpUtil {
try (Response response = ofHttpClient()
.connectTimeout(0, TimeUnit.MILLISECONDS)
.readTimeout(0, TimeUnit.MILLISECONDS)
.writeTimeout(0, TimeUnit.MILLISECONDS)
.build().newCall(ofGet(url)).execute()) {
if (response.isSuccessful() && response.body() != null) {
return response.body().bytes();