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,6 +76,7 @@ public class OkHttpUtil {
///////////////////////////////////////////////////////////////////////////
// get请求
/// ////////////////////////////////////////////////////////////////////////
public static String get(String urlString) {
@@ -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,6 +109,7 @@ public class OkHttpUtil {
///////////////////////////////////////////////////////////////////////////
// Post请求
/// ////////////////////////////////////////////////////////////////////////
public static String post(String urlString, Map<String, String> formMap) {
@@ -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,6 +144,7 @@ public class OkHttpUtil {
///////////////////////////////////////////////////////////////////////////
// Download下载文件
/// ////////////////////////////////////////////////////////////////////////
public static File downloadFile(String url, String 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();