volley post非json格式数据并获取json数据
在使用JsonObjectRequest时无法post非json格式的数据,因而采用StringRequest获取到相应的数据后再转为json格式的数据。
//这里的上下文需要讨论 private static RequestQueue mRequestQueue = Volley.newRequestQueue(Global.getContext()); public interface IResponse{ void subscribeData(Object data); } /**Post方式从网络获取数据 */ public static void postDataFromNet(final IResponse iResponse, String url, final HashMap<String,String> map){ StringRequest request = new StringRequest( Request.Method.POST, url, new Response.Listener<String>() { @Override public void onResponse(String response) { try { iResponse.subscribeData(new JSONObject(response)); //将数据返回 } catch (JSONException e) { e.printStackTrace(); } } }, new Response.ErrorListener() { @Override public void onErrorResponse(VolleyError volleyError) { Log.e("#StringRequest:Error#", volleyError.getMessage()); } }){ @Override public Map<String, String> getHeaders() throws AuthFailureError { Map<String,String> header = new HashMap<>(); header.put("token", "9FOYT495E6BCFLOKYE36F8C618533C3E"); return header; } @Override protected Map<String, String> getParams() throws AuthFailureError { return map; } }; request.setTag(""+url); mRequestQueue.add(request); }
扫描公众号,关注更多信息
---------------------------------------------------------------------------------我是分割线--------------------------------------------------------------------------to be a better me, talk is cheap show me the code
版权所有,转载请注明原文链接。
文中有不妥或者错误的地方还望指出,以免误人子弟。如果觉得本文对你有所帮助不妨【推荐】一下!如果你有更好的建议,可以给我留言讨论,共同进步!
再次感谢您耐心的读完本篇文章。
----------------------------------------------------------------------------------------------------------------------------------------------------------------------