第二次通话Android Volleyrequest没有错误,但未显示数据

时间:2019-03-11 04:56:30

标签: json android-volley

我在使用Android Volley时遇到问题。我的应用程序需要2个步骤进行调用。首先我通过 HTTP POST 进行调用,以提交电子邮件和密码(如果经过验证),然后提供令牌访问权限。解析用户数据,因此应用程序发送令牌,服务器返回已解析的数据。我使用的所有请求都是 StringRequest 齐射。

问题是,我在第二次调用中看不到返回的字符串,但是第一次调用是可以的。令牌是从返回的第一次调用中提供的,并且我转换为JSONObject,所以我可以解析它以获取纯字符串令牌。但是如果我为第二次调用静态提供了令牌(不使用从函数返回的令牌,而是使用普通令牌),请求还可以。第一次和第二次调用都成功返回了我想要的数据。

这是我的片段功能,用于将字符串转换为JSONObject

private String json_login(String data){
        try{
            String token = null;
            JSONObject object = new JSONObject(data);
            if(!object.getBoolean("error")){
                token = object.getString("jwt");
                System.out.println(token);
                return token;
            }
        }catch (JSONException e){
            Log.e(TAG,e.getMessage());
        }
        return null;
    }

排球班

public class APINetworkRequest {
    private static final int CODE_GET_REQUEST = 1024;
    private static final int CODE_POST_REQUEST = 1025;
    int REQ_CODE;


    public APINetworkRequest(final Context context,final FetchDataListener listen,final String urli,int REQUEST_CODE,
                             HashMap<String,String> params){

        if(REQUEST_CODE == CODE_GET_REQUEST){
            GET_REQUEST(context,listen,urli);
        }
        if(REQUEST_CODE == CODE_POST_REQUEST){
            POST_REQUEST(context,listen,urli,params);
        }
    }

    private void GET_REQUEST(final Context context,final FetchDataListener listen,final String url){


    }
    private void POST_REQUEST(final Context context, final FetchDataListener listen, final String url, HashMap<String,String> param){
        if(listen !=null){
            listen.onFetchStart();
        }
        StringRequest stringRequest = new StringRequest(Request.Method.POST, url,
                new Response.Listener<String>() {
                    @Override
                    public void onResponse(String response) {

                        if (listen != null) {
                            listen.onFetchComplete(response);
                        }

                    }
                }, new Response.ErrorListener() {
            @Override
            public void onErrorResponse(VolleyError error) {
                if (error instanceof NoConnectionError){
                    listen.onFetchFailure("Network Connectivity Problem!");

                }else if (error.networkResponse!=null && error.networkResponse.data !=null){
                    VolleyError volleyError = new VolleyError(new String(error.networkResponse.data));
                }
            }
        }){

            @Override
            public String getBodyContentType() {
                return "application/x-www-form-urlencoded; charset=UTF-8";
            }

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

                return param;
            }
        };
        RequestQueueVolley.getInstance(context).addToRequestQueue(stringRequest.setShouldCache(false));

    }


}

预先感谢

0 个答案:

没有答案