在使用OkHttp发送多个请求时,可以通过使用Tag属性来确定响应归属于哪个请求。以下是一个示例:
import okhttp3.Call;
import okhttp3.Callback;
import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.Response;
public class Main {
public static void main(String[] args) {
OkHttpClient client = new OkHttpClient();
// 创建Request对象并设置Tag属性
Request request = new Request.Builder()
.url("https://api.example.com")
.tag("Request1")
.build();
// 发送请求
Call call = client.newCall(request);
call.enqueue(new Callback() {
@Override
public void onResponse(Call call, Response response) {
// 在这里可以通过call的Tag属性判断响应归属于哪个请求
if (call.request().tag().equals("Request1")) {
// 响应归属于Request1
System.out.println("Response for Request1");
} else {
// 响应归属于其他请求
System.out.println("Response for other request");
}
}
@Override
public void onFailure(Call call, IOException e) {
e.printStackTrace();
}
});
}
}
在上面的示例中,我们创建了一个OkHttpClient对象,并通过Request.Builder的tag()方法设置了Tag属性为"Request1"。当收到响应时,我们可以通过调用call.request().tag()方法获取Tag属性,并与预期的值进行比较,从而确定响应归属于哪个请求。
请注意,如果不设置Tag属性,默认情况下Tag的值为null。因此,在使用Tag属性之前,应该确保已经为每个请求设置了Tag属性。