您的位置:首页 > 其它

Volley之post传输

2015-08-15 11:26 471 查看
1.客户端以普通的post方式进行提交,服务端返回字符串

RequestQueue requestQueue =Volley.newRequestQueue(this);

StringRequest stringRequest=new StringRequest(Request.Method.POST,httpurl,

new Response.Listener<String>(){

@Override

public void onResponse(String response){

System.out.println("response="+response);

//已经获取了数据

}

},new Response.ErrorListener(){

@Override

public void onErrorResponse(VolletError error){

System.out.println("sorry,Error");

}

}){

@Override

protected Map<String,String> getParams(){

Map<String,String> map=new HashMap<String,String>();

map.put("name","value");

return params;

}};

requestQueue.add(stringRequest);

2.客户端以json串的post请求方式进行提交,服务端返回json串

RequestQueue requestQueue =Volley.newRequestQueue(this);

Map<String,String> map=new HashMap<String,String>();

map.put("name1","value1");

map.put("name2","value2");

JSONObject jsonObject=new JSONObject(params);

JsonRequest<JSONObject> jsonRequest=new JsonObjectRequest(Method.POST,httpurl,jsonObject,

new Response.Listener<JSONObject>(){

@Override

public void onResponse(JSONObject response){

System.out.println("response="+response.toString());

}

},new Response.ErrorListener(){

@Override

public void onErrorResponse(VooleyError error){

System.out.println("sorry,Error");

}

}){

};

requestQueue.add(jsonRequest);

3.客户端以普通的post方式进行提交,服务端返回json串

首先在Activity类里,集成Request实现一个NormalPostRequest类

priavte class NormalPostRequest(String url,Listener<JSONObject> listener,

ErorListener errorListener,Map<String,String> map){

super(Request.Mthod.POST,url,errorListener);

mListener=listener;

mMap=map;

}

//mMap是已经按照前面的方式,设置了参数的实例

@Override

protected Map<String,String> getParams() throws AuthFailureError{

return mMap;

}

@Override

protected Response<JSONObject> parseNetworkResponse(NewworkResponse response){

try{

String jsonString=new String(response.data,HttpHeaderParse.parseCharset(response.headers));

return Response.success(ne JSONObject(josnString),HttpHeaderParser.parseCacheHeaders(response));

}catch(UnsupportedEncodingException e){

return Response.error(new ParseError(e));

}catch(JSONException je){

return Response.error(new ParseError(je));

}

}@Override

protected void deliverResponse(JSONObject response){

mListener.onResponse(response);

}

}

接下来的调用方式和前面差不多,生成一个Request实例,加入列队中即可

RequestQueue requestQueue=Volley.newRequestQueue(getApplicationContexe());

Request<JSONObject> request=new NormalPostRequest(httpurl,

new Response.Listener<JSONObject>(){

@Override

public void onResponse(JSONObject response){

System.out.println("response="+response.toString());

}

},new Response.ErrorListener(){

@Override

public void onResponse(VolleyError error){

Log.e("TAG",error.getMessage(),error);

}

},params);

requestQueue.add(request);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: