【问题标题】:Why i'm getting error?com.android.volley.timeouterror为什么我收到错误?com.android.volley.timeouterror
【发布时间】:2018-05-22 07:25:18
【问题描述】:

大家好,有人可以帮我上这门课吗?我收到一个错误,我只是 android studio 和移动开发的新手。我正在学习和获取知识。请帮我。

RequestQueue requestQueue = Volley.newRequestQueue(this);

StringRequest stringRequest = new StringRequest(Request.Method.POST, URL, new Response.Listener<String>() {
    @Override
    public void onResponse(String response) {
        Toast.makeText(Register.this, response, Toast.LENGTH_LONG).show();
    }
}, new Response.ErrorListener() {
    @Override
    public void onErrorResponse(VolleyError error) {
        Toast.makeText(Register.this, error.toString(), Toast.LENGTH_LONG).show();

    }
}) {

    @Override
    protected Map<String, String> getParams() throws AuthFailureError {

        Map<String, String> params = new HashMap<String, String>();
        params.put(NAME, pangaran);
        params.put(SURNAME, apelyido);
        params.put(ADDRESS, lugar);
        params.put(CONTACTNO, kontak);
        params.put(USERNAME, username1);
        params.put(PASSWORD, password1);
        return params;

    }
};

requestQueue.add(stringRequest);

【问题讨论】:

  • 哪个班?放松并发布您的代码,描述您想要实现的目标和无效的目标。没有这个,你的问题很快就会结束。
  • 刚刚编辑了我的问题,先生
  • 它昨晚还在工作,但是当我运行代码时出现错误提示“com.android.volley.timeouterror”
  • 您能帮帮我吗?
  • timeouterror 似乎是 HttpConnection timeout 。确保互联网正常工作。您也可以自己分配超时,我猜默认是 30 秒。仅当它与 ConnectionTimeout 相关时。

标签: java android android-volley


【解决方案1】:

也许你可以增加超时来检查一切是否正常。由于您之前说过您的代码对您有效,因此可能的原因可能是您的服务器响应您的请求的时间较短,由于流量的原因,这可能并非始终相同。
尝试在现有代码中添加以下行。

stringRequest.setRetryPolicy(new RetryPolicy() {
        @Override
        public int getCurrentTimeout() {
            return 30000;
        }

        @Override
        public int getCurrentRetryCount() {
            return 30000;
        }

        @Override
        public void retry(VolleyError error) throws VolleyError {

        }
    });

【讨论】:

  • @pangs 在将请求添加到 requestQueue 之前插入代码。
【解决方案2】:

看到这个link,希望它能帮助你确定截击的时间。

如果没有帮助,请告诉我。

更新

最后我插入了代码来改变volley设置的默认时间,你可以自己设置时间,应该是毫秒。

RequestQueue requestQueue = Volley.newRequestQueue(this);

StringRequest stringRequest = new StringRequest(Request.Method.POST, URL, new Response.Listener<String>() {
@Override
public void onResponse(String response) {
    Toast.makeText(Register.this, response, Toast.LENGTH_LONG).show();
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
    Toast.makeText(Register.this, error.toString(), Toast.LENGTH_LONG).show();

}
}) {

@Override
protected Map<String, String> getParams() throws AuthFailureError {

    Map<String, String> params = new HashMap<String, String>();
    params.put(NAME, pangaran);
    params.put(SURNAME, apelyido);
    params.put(ADDRESS, lugar);
    params.put(CONTACTNO, kontak);
    params.put(USERNAME, username1);
    params.put(PASSWORD, password1);
    return params;

}
};

//10000 is the time in milliseconds adn is equal to 10 sec
stringRequest.setRetryPolicy(new DefaultRetryPolicy(
            10000,
            DefaultRetryPolicy.DEFAULT_MAX_RETRIES,
            DefaultRetryPolicy.DEFAULT_BACKOFF_MULT));

requestQueue.add(stringRequest);

【讨论】:

  • 嘿先生你能帮我吗?我还是不明白。在我的代码的哪一部分我会插入你的建议?正如我所说,我是 android 编程和移动开发的新手
  • 我已经在我的回答中更新了你的代码。看看吧。
  • 您应该使用其他互联网检查此问题,您当前的互联网连接可能存在速度问题。
【解决方案3】:

对我来说:那只是为了你的“VPN”,关掉你的“VPN”

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-11-05
    • 2015-01-30
    • 2014-02-10
    • 2015-06-27
    • 2013-07-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多