Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/sharepoint/4.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
Android 截击库不一致的正确响应_Android_Android Volley - Fatal编程技术网

Android 截击库不一致的正确响应

Android 截击库不一致的正确响应,android,android-volley,Android,Android Volley,我一直在使用截击在我的应用程序上执行网络任务。这一次,它经常给我不一致的回答。有时是错误的反应,有时是正确的。这是我的密码: public void requestGet(final Context context, final String url){ request = new StringRequest(Request.Method.GET, url, new Response.Listener<String>() {

我一直在使用截击在我的应用程序上执行网络任务。这一次,它经常给我不一致的回答。有时是错误的反应,有时是正确的。这是我的密码:

public void requestGet(final Context context, final String url){
    request = new StringRequest(Request.Method.GET, url,
            new Response.Listener<String>() {
                @Override
                public void onResponse(String response) {
                    try {
                        obj = new JSONObject(response);
                    } catch (JSONException e) {
                        e.printStackTrace();
                    }
                }
            },
            new Response.ErrorListener(){
                @Override
                public void onErrorResponse(VolleyError error){
                    error.printStackTrace();
                }
            });
    request.setRetryPolicy(new DefaultRetryPolicy(
            0,
            DefaultRetryPolicy.DEFAULT_MAX_RETRIES,
            DefaultRetryPolicy.DEFAULT_BACKOFF_MULT));
    RequestQueue requestQueue = Volley.newRequestQueue(context);
    requestQueue.add(request);
}
一些信息:

  • 我尝试在PC浏览器上测试我的URL,它们都给出了正确的响应
  • 当一个错误发生时,它会在很短的时间内发生。因此,在我看来,重试策略并不是真正的问题
  • 有什么建议吗?多谢各位

    request.setRetryPolicy(new DefaultRetryPolicy(
                0,
                DefaultRetryPolicy.DEFAULT_MAX_RETRIES,
                DefaultRetryPolicy.DEFAULT_BACKOFF_MULT));
    

    这里的第一个参数是超时,它应该大于0,例如10000(10s)。

    尝试此重试策略:-

    request.setRetryPolicy(new DefaultRetryPolicy(5*1000,-1,DefaultRetryPolicy.DEFAULT_BACKOFF_MULT));
    

    对于截击,您必须正确处理错误响应。例如无连接错误、网络错误、服务器错误、解析错误等。谢谢,我理解,但是,我的问题是,它有时给出错误响应,有时是正确的。这是关于不一致性的。关于未正确处理错误响应,我认为这是一个不同的问题。这将发生,因为网络连接速度慢,或默认的volley重试策略,或由于参数错误(网络错误)等错误。我已在上面发布了我的volley代码,请检查其重试策略是否正确,好吗?我认为慢网或网络错误也是可能的。但是,我仍然会感到困惑,因为我可以在PC浏览器上打开截取的URL,并且它总是在相对较短的时间内显示正确的响应。请尝试我的重试策略回答。谢谢,我刚刚尝试过。尽管如此,有时是错误响应,有时是正确响应。原因可能是设备上的网络。尝试将超时持续时间增加到更长的时间。这可能会解决问题。请将重试计数设置为0。在这种情况下,它只会尝试一次。
    request.setRetryPolicy(new DefaultRetryPolicy(5*1000,-1,DefaultRetryPolicy.DEFAULT_BACKOFF_MULT));