当前位置: 首页 > 知识库问答 >
问题:

Android凌空双帖时有慢的要求

景帅
2023-03-14

我在慢速网络上的Volley POST请求有问题。每次我在我的LogCat中看到BasicNetwork.logSlow请求,我的POST请求都会执行两次或更多次,导致1个请求的多次(2次或更多)发布。我已经将重试策略设置为0,但它没有帮助。

这是我的LogCat

截击(5984):[19807]基本网络。logSlowRequests:请求的HTTP响应=

这是我的密码

JSONObject body = new JSONObject();
try {
    body.put(PROTO_BODY_AUTHORIZATION, Sessions.getActiveSession().getToken());
} catch (JSONException e) {
    e.printStackTrace();
}

JsonObjectRequest request = new JsonObjectRequest(
        Request.Method.POST,
        context.getResources().getString(R.string.server_address) + "/places",
        body,
        callback,
        new Response.ErrorListener() {
            @Override
            public void onErrorResponse(VolleyError error) {
                Toast.makeText(context, error.getMessage(), Toast.LENGTH_LONG).show();
            }
        }
);

request.setRetryPolicy(
        new DefaultRetryPolicy(
                DefaultRetryPolicy.DEFAULT_TIMEOUT_MS,
                0,
                DefaultRetryPolicy.DEFAULT_BACKOFF_MULT));
    getRequestQueue().add(request);

请帮助,我拼命寻找解决这个问题的办法。

共有3个答案

何兴安
2023-03-14

我找到了双帖的解决方案,我只是将超时设置为0。

邢勇
2023-03-14

只是将RetryStrategy中的Timeout设置为0太少了。检查源后,您必须实际设置最大重试次数

我固定双张贴与设置的政策如下

new DefaultRetryPolicy(0, -1, DefaultRetryPolicy.DEFAULT_BACKOFF_MULT));
萧胜
2023-03-14

向请求对象添加以下值:

request.setRetryPolicy(new DefaultRetryPolicy(
    DefaultRetryPolicy.DEFAULT_TIMEOUT_MS * 2,
    DefaultRetryPolicy.DEFAULT_MAX_RETRIES,
    DefaultRetryPolicy.DEFAULT_BACKOFF_MULT));

这里:请求是JsonObjectRequest的对象。根据Volley中DefaultRetryStrategy类中的DEFAULT TIMEOUT VALUE更改乘法器的值。

还可以将第一个参数设置为0,如下所示:

request.setRetryPolicy(new DefaultRetryPolicy(
    0,
    DefaultRetryPolicy.DEFAULT_MAX_RETRIES,
    DefaultRetryPolicy.DEFAULT_BACKOFF_MULT));
 类似资料:
  • 我有下面的代码(谷歌的凌空库)向我的php服务器发送POST请求并获取信息。我没有在php中检查isset($\u POST['id')就尝试了代码,代码运行良好。当我开始检查时,php将跳过if语句并转到else,这意味着代码没有正确发送参数。我怎样才能解决这个问题? 我还尝试了以下代码: 但是我仍然得到同样的结果。

  • 关于在项目中使用截击,我有几个问题: 这个库可以在任何Java项目中使用,还是仅在Android中使用

  • 我想在应用程序启动时加载一些数据,这些数据将被所有活动使用。我在应用程序的onCreate方法中这样做,因为我希望在显示任何活动之前下载这些数据,所以我尝试使用RequestFuture发出同步请求。但是,始终会抛出TimeoutException。 什么是获得应用程序范围的数据的最佳方式,记住没有一个活动是首先启动的?

  • 我在Android平台上使用谷歌排球。我遇到了一个问题,其中错误空对于我正在使用的RESTful API,我需要确定Http状态代码,该代码通常以401(SC_UNAUTHORIZED)或500(SC_INTERNAL_SERVER_ERROR)的形式到达,我可以偶尔通过以下方式进行检查: 这将引发因为为空。 如何确定错误函数中的 Http 状态代码? 或者,如何确保< code>onErrorR

  • 我使用的是volley.jar,在编译时没有错误,但是有运行时异常。 然后添加volley.jar和build path。什么是问题? CustomAdapter.java

  • 我正在尝试向我的API发出请求,它可以在中工作(我得到一个有效的JSON对象),但不使用。使用以下代码: 我收到以下错误: 我看过很多例子,我真的不知道哪里出了问题。有人知道吗? 我用这个方法更新了代码: 并将更改为: 仍然收到相同的错误!