You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Eclipse中connectionTimeout未定义及OkHttpClient超时方法报错求助

解决OkHttpClient setConnectionTimeout/setReadTimeout方法未定义的问题

这个问题是OkHttp 3.x版本的API变更导致的——从3.x开始,OkHttpClient变成了不可变对象,所有配置(包括超时时间)都必须通过它的Builder类来设置,直接在OkHttpClient实例上是找不到这些setXXXTimeout方法的。

正确的实现步骤:

  • 先创建OkHttpClient.Builder实例,在Builder上调用超时配置方法
  • 调用Builder的build()方法生成最终的OkHttpClient实例

修正后的代码示例:

import okhttp3.OkHttpClient;
import java.util.concurrent.TimeUnit;

// 1. 创建Builder并配置超时参数
OkHttpClient.Builder clientBuilder = new OkHttpClient.Builder();
clientBuilder.connectTimeout(3000, TimeUnit.MILLISECONDS); // 注意方法名改为connectTimeout,去掉了set前缀
clientBuilder.readTimeout(3000, TimeUnit.MILLISECONDS);

// 2. 生成不可变的OkHttpClient实例
OkHttpClient httpParameters = clientBuilder.build();

额外说明:

  • 方法名有小调整:原setConnectionTimeout改为connectTimeout,setReadTimeout改为readTimeout(移除了set前缀)
  • 你之前导入的org.apache.http.impl.client.HttpClientBuilder和当前问题无关,如果没有用到可以删除
  • 直接new OkHttpClient.Builder()即可使用,之前导入的okhttp3.OkHttpClient.Builder可以保留,也可以删除不影响使用

这样修改后,就不会再出现方法未定义的错误啦!

内容的提问来源于stack exchange,提问作者nan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 07:41:39