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