okhttp Request 设置timeout
时间: 2023-12-26 16:06:17 浏览: 109
OkHttp请求
在 OkHttp 中,可以通过设置 `timeout` 的方式来控制请求的超时时间。具体来说,可以通过以下方式设置:
```java
OkHttpClient client = new OkHttpClient.Builder()
.connectTimeout(10, TimeUnit.SECONDS) // 设置连接超时时间
.writeTimeout(10, TimeUnit.SECONDS) // 设置写入超时时间
.readTimeout(30, TimeUnit.SECONDS) // 设置读取超时时间
.build();
Request request = new Request.Builder()
.url("http://www.example.com")
.build();
Response response = client.newCall(request).execute();
```
在上面的代码中,我们使用了 `OkHttpClient.Builder()` 来创建一个 `OkHttpClient` 对象,并通过 `connectTimeout()`、`writeTimeout()`、`readTimeout()` 方法来设置连接、写入和读取的超时时间。这里的时间单位是秒。
当请求超时时,OkHttp 会抛出一个 `SocketTimeoutException` 异常。如果需要对超时进行处理,可以在 catch 语句中进行处理。例如:
```java
try {
Response response = client.newCall(request).execute();
// ...
} catch (SocketTimeoutException e) {
// 请求超时,进行处理
}
```
阅读全文