Android okhttp每5秒发送5个请求并将请求成功数据添加到集合
时间: 2023-06-15 16:04:15 浏览: 57
你可以使用 Timer 和 TimerTask 来实现每5秒发送5个请求的功能。在 TimerTask 中,使用 OkHttpClient 发送请求并处理响应,将成功的数据添加到集合中。下面是一个简单的示例代码:
```java
import okhttp3.*;
import java.io.IOException;
import java.util.*;
public class Example {
private OkHttpClient client = new OkHttpClient();
private List<String> data = new ArrayList<>();
public void start() {
Timer timer = new Timer();
timer.schedule(new RequestTask(), 0, 5000);
}
private void sendRequest() throws IOException {
Request request = new Request.Builder()
.url("https://example.com")
.build();
Response response = client.newCall(request).execute();
if (response.isSuccessful()) {
String result = response.body().string();
data.add(result);
}
}
private class RequestTask extends TimerTask {
public void run() {
for (int i = 0; i < 5; i++) {
try {
sendRequest();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
}
```
在上面的代码中,start() 方法启动一个 Timer,每隔5秒执行一次 RequestTask 中的 run() 方法。在 run() 方法中,使用循环发送5个请求,并将成功的数据添加到 data 集合中。sendRequest() 方法使用 OkHttpClient 发送请求并处理响应。注意要捕获 IOException 异常,因为网络请求可能会失败。