java - 随机 com.android.volley.NoConnection 错误,java.io.InterruptedIOException,statuscode=0

标签 java android android-volley

我有一个使用 volley 框架从 PHP 服务器端脚本获取数据的原生 android 应用。

它在大多数时间都运行良好,但我有 20% 的失败率。

错误说:

com.android.volley.NoConnection, java.io.InterruptedIOException.

调试发现statuscode = 0,显然是错误的。

不知道是什么原因?由于它大部分时间都在工作,所以应该没有明显的错误代码。

仅供引用,服务器端的那些 PHP 脚本非常适合我的 IOS 应用。

请允许我在这里发布我的代码:

retryConnBtn.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            txtOut.append("\n");
            txtOut.append("Button with Retry Click");
            Log.d("Click", "Button Click");
            final String url = "https://www.myserver.com/api/getBalanceInfoTest?token=7ff3317a4f3dc07d0c297a7d16d2049c&t=" + System.currentTimeMillis();
            //final String url = "http://192.168.1.23/base/test/";
            JsonObjectRequest getRequest = new JsonObjectRequest(Request.Method.GET, url, null,
                    new Response.Listener<JSONObject>() {
                        @Override
                        public void onResponse(JSONObject response) {
                            txtOut.append("\n");
                            txtOut.append("Result with Retry:");
                            txtOut.append(response.toString());
                            Log.d("Response", response.toString());
                            VolleyLog.e("Response:", response.toString());
                        }
                    },
                    new Response.ErrorListener(){
                        @Override
                        public void onErrorResponse(VolleyError error) {
                            txtOut.append("\n");
                            txtOut.append("Error with Retry:");
                            txtOut.append(error.toString());
                            Log.d("Error.Response", error.toString());
                            VolleyLog.e("Error:", error.getMessage());
                        }
                    });

            getRequest.setRetryPolicy(new DefaultRetryPolicy(5000, 5, DefaultRetryPolicy.DEFAULT_BACKOFF_MULT));
            queue.add(getRequest);
            queue.start();
        }
    });


}

关于更多信息,我的 PHP 脚本的输出是: {"hsaBalance":"1000.00"},由 PHPJson_encode() 函数创建。

最佳答案

我已经修复了这个错误。 这不是网络问题。

queue.add(getRequest);
queue.start();

应该是

queue.add(getRequest);

所以关键是我们应该删除 queue.start()

关于java - 随机 com.android.volley.NoConnection 错误,java.io.InterruptedIOException,statuscode=0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31158858/

相关文章:

java - 如何使用 float 操作按钮(fab)创建新 Activity ?

java - freemarker生成的docx后缀的word文档在iphone上无法显示图片

android-volley - 具有不同 POST 请求的 Android Volley 缓存

android - NullPointerException addToRequestQueue(com.android.volley.Request, java.lang.String)' 在空对象引用上

java - Android studio,这不是从共享首选项中检索字符串并将其转换为 hashset<string> 的正确方法吗?

java - GWT - 当选中另一个 CheckboxCell 时,如何以编程方式取消选中一个 CheckboxCell?

android - 使用相机拍照并保存到图库

android - 如何将字符串 id 分配给 UI 元素。

java - 尝试连接 BluetoothGatt 时回调中出现未处理的异常

Android - 取消 Volley 请求