
您好我以Json格式向服务器发布数据,
但它在错误响应中返回volley服务器错误
RequestQueue queue = Volley.newRequestQueue(this); JsONObject jobj=new JsONObject(); try { jobj.put("ID",”123”); jobj.put("session","new"); JsONArray array = null; array = new JsONArray(); for (int i = 0;i<3;i++){ JsONObject JsonObject = new JsONObject(); JsonObject.put("name","test"); JsonObject.put("content","test"); JsonObject.put("time"," 2016-04-07T11:44:22.407Z "); array.put(JsonObject); } Log.e(" array "," arrr"+array.toString()); jobj.put("data",array); } catch (JsONException e) { e.printstacktrace(); } Log.e("Jsondata",jobj.toString());JsonObjectRequest sr= new JsonObjectRequest(post_url, jobj, new Response.Listener<JsONObject>() { @OverrIDe public voID onResponse(JsONObject response) { } }, new Response.ErrorListener() { @OverrIDe public voID one rrorResponse(VolleyError error) { } }){ @OveRequestQueue queue = Volley.newRequestQueue(this); JsONObject jobj=new JsONObject(); try { jobj.put("ID",”123”); jobj.put("session","new"); JsONArray array = null; array = new JsONArray(); for (int i = 0;i<3;i++){ JsONObject JsonObject = new JsONObject(); JsonObject.put("name","test"); JsonObject.put("content","test"); JsonObject.put("time"," 2016-04-07T11:44:22.407Z "); array.put(JsonObject); } Log.e(" array "," arrr"+array.toString()); jobj.put("data",array); } catch (JsONException e) { e.printstacktrace(); } Log.e("Jsondata",jobj.toString());JsonObjectRequest sr= new JsonObjectRequest(post_url, jobj, new Response.Listener<JsONObject>() { @OverrIDe public voID onResponse(JsONObject response) { } }, new Response.ErrorListener() { @OverrIDe public voID one rrorResponse(VolleyError error) { }rrIDe public Map<String, String> getheaders() throws AuthFailureError { Map<String,String> params = new HashMap<String, String>(); params.put("Content-Type","application/Json"); return params; } }; queue.add(sr);`解决方法:
有一个处理请求队列的单例.
public class VolleySingleton { // Singleton object... private static VolleySingleton instance; final private RequestQueue requestQueue; private static ImageLoader imageLoader; //Constructor... private VolleySingleton(Context context) { requestQueue = Volley.newRequestQueue(context); imageLoader = new ImageLoader(requestQueue, new ImageLoader.ImageCache() { private final LruCache<String, Bitmap> cache = new LruCache<>(100000000); @OverrIDe public Bitmap getBitmap(String url) { return cache.get(url); } @OverrIDe public voID putBitmap(String url, Bitmap bitmap) { cache.put(url, bitmap); } }); } // Singleton method... public static VolleySingleton getInstance(Context context) { if (instance == null) { instance = new VolleySingleton(context); } return instance; } public RequestQueue getRequestQueue(Context context) { if (requestQueue != null) { return requestQueue; } else { getInstance(context); return requestQueue; } } private RequestQueue getRequestQueue() { return requestQueue; } public static ImageLoader getimageLoader(Context context) { if (imageLoader != null) { return imageLoader; } else { getInstance(context); return imageLoader; } } public <T> voID addToRequestQueue(Request<T> req) { req.setTag("App"); getRequestQueue().add(req); }}然后使用以下方法,您可以发送请求.
public voID postVolley(final Context context, String url, JsONObject JsonObject) { JsonObjectRequest JsonObjReq = new JsonObjectRequest(Request.Method.POST, url, JsonObject, new Response.Listener<JsONObject>() { @OverrIDe public voID onResponse(JsONObject responseJson) { Log.e("success", "" + responseJson.toString()); } }, new Response.ErrorListener() { @OverrIDe public voID one rrorResponse(VolleyError error) { Log.e("error", "" + error); } }) { /** * Setting the content type */ @OverrIDe public String getbodyContentType() { return "application/Json;charset=UTF-8"; } }; VolleySingleton.getInstance(context).addToRequestQueue(JsonObjReq); }这对我来说很好.
总结以上是内存溢出为你收集整理的android – 使用volley以json格式将数据发布到服务器全部内容,希望文章能够帮你解决android – 使用volley以json格式将数据发布到服务器所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)