繁体   English   中英

使用Android Volley发布和获取Json数据

[英]Using Android Volley to Post and Obtain Json Data

我正在尝试使用Android Volley发布数据并收到Json Response。 我有下面的代码,我似乎看不到错误在哪里,因为我在网上找到的所有代码都与此类似。 我已附上android给出的消息的屏幕截图。

public String rBody = null;//Is Initialized also tried (String)null

  public void loadSharedPreferencesData(){
    SharedPreferences sharedPre = getSharedPreferences("userinfo", Context.MODE_PRIVATE);
    final String loggedStatus = sharedPre.getString("isLogged", "0");
    final String loggedUserId = sharedPre.getString("userId", "0");

    String loginUrl         = "http://dataUrl[![enter image description here][1]][1]/startvapp-ci/appdata/getsession/";

    JsonObjectRequest  jsonObjectRequest  = new JsonObjectRequest(Request.Method.POST, loginUrl, rBody ,
            new Response.Listener<JSONObject>() {
                @Override
                public void onResponse(JSONObject response){
                    //returnResponse = response.toString();
                    //Toast.makeText(getApplicationContext(), returnResponse , Toast.LENGTH_LONG).show();
                    System.out.println(response);
                    //Toast.makeText(getApplicationContext(), "Error in Response" , Toast.LENGTH_LONG).show();
                }
            },
            new Response.ErrorListener() {
                @Override
                public void onErrorResponse(VolleyError error) {
                    //Save this to some global variable
                    Toast.makeText(getApplicationContext(), "Error in Response" , Toast.LENGTH_LONG).show();
                }
            }
    ){
        @Override
        protected Map<String,String> getParams(){
            Map<String,String> params = new HashMap<String, String>();
            params.put(KEY_SESS_USERID,loggedUserId);
            params.put(KEY_SESS_STATUS,loggedStatus);
            return params;
        }
    };
    MySingleton.getInstance(this.getApplicationContext()).addToRequestQueue(jsonObjectRequest);
}

Android Studio错误

该错误消息表明jsonRequest参数的类型错误。 它需要一个JSONObject ,但您要提供一个StringrBody变量)。

如果rBody字符串是有效的JSON字符串,那么您可以简单地将该字符串传递给JSONObject构造函数。 然后,将此JSONObject传递给JsonObjectRequest构造函数,而不是rBody

JSONObject jsonRequest = new JSONObject(rBody);

JsonObjectRequest jsonObjectRequest = new JsonObjectRequest(
        Request.Method.POST, loginUrl, jsonRequest,
        new Response.Listener<JSONObject>() {
            // Response Listener code here
        },
        new Response.ErrorListener() {
            // Error Listener code here
        });

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM