Volley JsonObjectRequest不接受JsonObject作为响应

时间:2016-01-10 23:44:40

标签: java android json android-volley

我已经存在了一段时间,看起来谷歌凌空没有像我预期的那样工作。
我已准备好JsonObject请求:

JSONObject jsonObject = new JSONObject();
    try {
        jsonObject.put("auth-code", authCode);
    } catch (JSONException ignored) {
    }
    JsonObjectRequest response = new JsonObjectRequest(UrlController.getGoogleOauthSendAuthCodeMethod(), UrlController.getGoogleOauthSendAuthCodeUrl(), jsonObject.toString(), onSuccess, onError);  
 AppController.getInstance().addToRequestQueue(response, "REGISTER_USER_GOOGLE_OAUTH");

它只是将google auth-code发送到我的服务器并获取jsonObject作为响应。

为了回应这个请求,我检索了这个:

{"data":{"user":
               {"name":"name lastname",
               "username":"someusername",
               "email":"email@gmail.com"},
         "token":"eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOjQxNDIsImlzcyI6Imh0dHA6XC9cL2FzaG9qYXNoLm1pbFwvYXBpXC92MVwvYXV0aFwvZ29vZ2xlIiwiaWF0IjoxNDUyNDY3NTQ4LCJleHAiOjE0NTI0NzExNDgsIm5iZiI6MTQ1MjQ2NzU0OCwianRpIjoiMTNhNjU0MjcwMmQ2MmE5MDA1YTgyZTlkZTM3YjQxNGQifQ.YfQaGuhVTYXPizdt2AX8C0RAObUNoqJp4rglZPOGW7s",
         "is_new_user":false
         }
}

但是Volley总是进入错误部分。 我已经测试了服务器api,因为它返回了这些数据。

值得注意的事情:
当我返回这个json对象时,没有检查auth-code并只是从数据库返回一个随机用户,代码进入onResponse回调。我已经记录了服务器,我也得到了auth-code,并且正确地检索了响应。

那么我做错了什么?

1 个答案:

答案 0 :(得分:0)

找到原因,Volley time-out请求是2.5秒 我正在验证一个auth-code,这个时间花了不少时间 要解决此问题,请将此代码段用于您的Volley Request

     response.setRetryPolicy(new DefaultRetryPolicy(15000, DefaultRetryPolicy.DEFAULT_MAX_RETRIES, DefaultRetryPolicy.DEFAULT_BACKOFF_MULT)); 

15000是requestTimeOut毫秒。