您的位置:首页 > Web前端 > JavaScript

volley post非json格式数据并获取json数据

2016-04-30 12:18 399 查看
在使用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);
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: