Android Volley onResponse 函数没有 运行

Android Volley onResponse function not running

这是我从https://developer.android.com/training/volley/request#java

填写的函数
        String url = "http://192.168.1.31:8000/api/social/convert-token";

        JSONObject jsonBody = new JSONObject();
        try{
            jsonBody.put("grant_type", "convert_token");
            jsonBody.put("client_id", clientID);
            jsonBody.put("client_secret",clientSecret);
            jsonBody.put("backend", "facebook");
            jsonBody.put("token", facebookAccessToken);
            jsonBody.put("user_type", userType);
        }catch (JSONException e){
            e.printStackTrace();;
        }

        JsonObjectRequest jsonObjectRequest = new JsonObjectRequest
                (Request.Method.POST, url, jsonBody, new Response.Listener<JSONObject>() {

                    @Override
                    public void onResponse(JSONObject response) {
                        //Execute Code
                        Log.d("LOGIN TO SERVER", response.toString());

                        // Save server token to local DB
                        SharedPreferences.Editor editor = sharedPreferences.edit();

                        try {
                            editor.putString("token", response.getString("access_token"));
                        }catch (JSONException e){
                            e.printStackTrace();
                        }
                        editor.commit();

                        //Start home activity
                        startActivity(new Intent(Login.this,Home.class));

                    }
                }, new Response.ErrorListener() {

                    @Override
                    public void onErrorResponse(VolleyError error) {
                        // TODO: Handle error


                    }
                });

字符串 URL 是我的 Django 服务器,它工作正常,我可以从 android phone.

上的 Web 浏览器访问它

下一个块只是将我之前得到的数据转换成JSON格式。我通过复制和粘贴 URL 以及 Postman 中的每个参数来测试它,它有效并且 returns JSON 返回。

jsonBody 然后与 URL 一起传递到 Json 请求中。 Log.d“LOGIN TO SERVER”在我的日志中不可见。所以我知道 onResponse 不会 运行。此外,我在 onErrorResponse 中放置了一条日志行,它在我的日志中可见。

所以 onReponse 不会 运行,而 onError 响应会。我不知道错误是什么。

三个案例,

  1. 检查是否有任何 headers 使用 getHeaders() 传递。
    2.As 是 http 而不是 https,在 manifest 里面提供 android:usesCleartextTraffic="true" 。它还允许您访问 http url。
    3.You 表示您已将记录器保存在 Response.onErrorListener(){} 中,错误是什么。如果不通过 Log.d("Error", "Error getting "+error.toString);