[英]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);
}
该错误消息表明jsonRequest
参数的类型错误。 它需要一个JSONObject
,但您要提供一个String
( rBody
变量)。
如果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.