Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/200.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
当我想用改型和rxandroid重试请求时,如何修改请求参数和头_Android_Retrofit_Okhttp_Rx Android - Fatal编程技术网

当我想用改型和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);
    }
}