在我的场景中,我们的后端希望对任何请求获得唯一的ID,但我读到“OKHTTP可能会在慢速/不可靠的连接上‘积极地’重复您的请求,直到成功。”和一些OkHttp问题。我知道可以使用RetryonConnectionFailure(false)
禁用重试机制,但我希望启用它来处理连接问题。我想要的正是,在静默重试之前修改请求。我可以在发送沉默请求之前拦截吗?
我想你可以用拦截器解决这个过程。当服务器无法连接时,可以连接到另一个服务器。
@Override
public Response intercept(Chain chain) throws IOException {
Request request = chain.request();
// try the request
Response response = doRequest(chain,request);
int tryCount = 0;
while (response == null && tryCount <= RetryCount) {
String url = request.url().toString();
url = switchServer(url);
Request newRequest = request.newBuilder().url(url).build();
tryCount++;
// retry the request
response = doRequest(chain,newRequest);
}
if(response == null){//important ,should throw an exception here
throw new IOException();
}
return response;
}
private Response doRequest(Chain chain,Request request){
Response response = null;
try{
response = chain.proceed(request);
}catch (Exception e){
}
return response;
}
我们对okhttp重试请求有一些问题。根据我们的崩溃报告日志,我们的大多数客户都收到了太多此类异常。 他们抱怨的是,数据上传到服务器,但移动端仍然显示没有上传。我研究了一点,发现okHttp在连接失败时重试请求,猜测这与这个主题有关。我不能在调试应用程序时创建一个案例。我已经尝试连接到10.10.10.1,它得到了套接字超时,但似乎okhttp没有重试这个请求。如果(!StreamAllocati
一、修改请求 在上一步中,我们恢复了截获的请求,没有进行任何更改。当我们在将请求转发到目的地之前修改被拦截的请求时,就会发挥拦截的全部功能。您可以继续上一步中的窗口和已配置的拦截规则。 欢迎来到mitmproxy教程。在本课程中,我们将介绍对截获请求的修改。 点击查看教程 二、影片内容 欢迎来到mitmproxy教程。在本课程中,我们将介绍对截获请求的修改。 我们配置和使用与上一教程中相同的拦截规
目前,我正在捕捉异常并重新尝试维护一个计数器变量。
解决方案: 我为我的api请求准备了这段代码,当我使用调试器时,它可以工作。 我可以在PlayerStats课程中看到结果,但现在我遇到了一个问题。 但是在这个不工作: 统计数据。课程: 我需要一种从 不工作,因为零参数。 如果我试图修复: IDE说它需要一个或一个断言调用,但如果我尝试使用断言调用,应用程序就会崩溃,我会得到以下错误: 2020-03-05 18:58:02.803 23276-
问题内容: 我正在使用节点/快速服务器。express的默认超时为120,000 ms,但这对我来说还不够。当我的响应达到120,000 ms时,控制台将记录日志,并且页面显示错误,因此我想将超时设置为更大的值。我该怎么办? 问题答案: 考虑到问题中的日志,我假设您正在使用。关键是在服务器上设置属性(以下将超时设置为一秒钟,使用您想要的任何值): 如果您不使用express,而仅使用普通节点,则原
问题内容: 我在客户端使用Java-http-client库和Apache Transport,在服务器端使用Rails。有时会出现如下所示的获取错误: 我应该怎么做才能避免这种情况? 问题答案: 我有一个类似的错误,因为我使用了CountingInputStreamEntity这是一个不可重复的http客户端。解决方案是使用BufferedHttpEntity,它将不可重复的HTTP客户端转换为