当我想用改型和rxandroid重试请求时,如何修改请求参数和头
我想在订阅服务器中重试请求,这取决于服务器给出的错误,但我需要在重试之前修改请求信息(标题和参数)。我该怎么做当我想用改型和rxandroid重试请求时,如何修改请求参数和头,android,retrofit,okhttp,rx-android,Android,Retrofit,Okhttp,Rx Android,我想在订阅服务器中重试请求,这取决于服务器给出的错误,但我需要在重试之前修改请求信息(标题和参数)。我该怎么做 ServerApi.login("103", "json", "379020", "银魂", "6") .subscribe(new DialogSubscriber<String>(this, true) { @Override protected void onCCSuccess(String data) { Toas
ServerApi.login("103", "json", "379020", "银魂", "6")
.subscribe(new DialogSubscriber<String>(this, true) {
@Override
protected void onCCSuccess(String data) {
Toast.makeText(mActivity, "success", Toast.LENGTH_LONG).show();
}
@Override
protected void onFailed(int code, String message) {
if(code == RETRY_CODE){
retry();//modify this request params and headers and resend this request again
}else{
super.onFailed(code, message);
}
}
});
ServerApi.login(“103”、“json”、“379020”、“银魂", "6")
.subscribe(新对话框subscriber)(this,true){
@凌驾
受保护的void onCCSuccess(字符串数据){
Toast.makeText(mActivity,“success”,Toast.LENGTH_LONG.show();
}
@凌驾
受保护的void onFailed(整数代码、字符串消息){
如果(代码==重试\u代码){
retry();//修改此请求参数和头并重新发送此请求
}否则{
super.onFailed(代码、消息);
}
}
});
我想在订阅服务器的onFailed()方法中进行重试,请您需要的是一个(我假设您正在使用OkHttp进行改装)
您需要的是一个(我假设您正在使用OkHttp进行改造)
仅供参考(不确定是否有用):翻新/okhttp提供了一个重试策略,您可以作为拦截器实现。在此处查找更多信息:仅供参考(不确定是否有用):改型/okhttp提供了重试策略,您可以作为拦截器实现。在这里可以找到更多的信息:更多的是一个评论,作为一个答案。否:)但是我认为仅仅链接到文档/资源,没有解释的“答案”应该是一个评论。没什么私事!!!此外,我们假设使用OkHttp,但作者尚未确认。好的,99%应该是OkHttp;)希望你明白我的意思。谢谢你编辑你的答案。谢谢!这正是我需要的!更多的评论,作为回答。否:)但我认为仅仅链接到文档/资源的“答案”,没有解释应该是评论。没什么私事!!!此外,我们假设使用OkHttp,但作者尚未确认。好的,99%应该是OkHttp;)希望你明白我的意思。谢谢你编辑你的答案。谢谢!这正是我需要的!
@Override
public Response intercept(Chain chain) throws IOException {
okhttp3.Request original = chain.request();
Response origResponse = chain.proceed(request);
if (origResponse.code() == RETRY_CODE) {
// modify your original request (add headers to it etc.)
...
return chain.proceed(original);
}
}