注意:使用JsonObjectRequest或继承自JsonObjectRequest类的对象提交一个post请求时,如果有参数需要提交,就必须以JSONObject的json串方式提交.否则通过重写getParams()方法的方式提交不管用,getParams()方法中提交post参数只适用于Request对象。
直接上代码:第一部分是调用,第二部分是自定义
JsonObjectRequestWithCookie
private void uploadUserOp(String opType, String musicKey) throws AuthFailureError {
Log.w("LOG","invoke uploadUserOp with "+ opType+" and "+musicKey);
HashMap<String, String> opMap = new HashMap<String, String>();
opMap.put("op", opType);
opMap.put("key", musicKey);
JSONObject opJsonObject = new JSONObject(opMap);
JsonObjectRequestWithCookie jsonObjectRequestWithCookie = new JsonObjectRequestWithCookie(Constants.USER_HISTORY_URL,opJsonObject, new Response.Listener<JSONObject>() {
@Override
public void onResponse(JSONObject jsonObject) {
Log.w("LOG","get response jsonObject from post user history"+jsonObject.toString());
try {
if(jsonObject.getString("status").equals("success")){
Log.w("LOG", "post /api/use/history/ success");
}
else{
Log.w("LOG", "post /api/use/history/ failure");
}
} catch (JSONException e) {
e.printStackTrace();
}
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError volleyError) {
Log.w("LOG", "操作失败");
}
},opMap);
jsonObjectRequestWithCookie.setCookie(localCookie);
RequestManager.getRequestQueue().add(jsonObjectRequestWithCookie);
}
import com.android.volley.Request;
import com.android.volley.Response;
import com.android.volley.toolbox.JsonObjectRequest;
import org.json.JSONObject;
import java.util.HashMap;
import java.util.Map;
/**
* Created by lsc on 2014/12/24.
*/
public class JsonObjectRequestWithCookie extends JsonObjectRequest {
private Map<String, String> mHeaders = new HashMap<>();
public JsonObjectRequestWithCookie(String url, JSONObject jsonRequest, Response.Listener<JSONObject> listener, Response.ErrorListener errorListener,Map<String,String> map) {
super(Request.Method.POST, url, jsonRequest, listener, errorListener);
}
public JsonObjectRequestWithCookie(String url, JSONObject jsonRequest, Response.Listener<JSONObject> listener, Response.ErrorListener errorListener){
super(url, jsonRequest, listener, errorListener);
}
//拿到客户端发起的http请求的Header
@Override
public Map<String, String> getHeaders() throws AuthFailureError {
return mHeaders;
}
//发送请求时,往Header中添加cookie,可以一并发送
public void setCookie(String cookie) throws AuthFailureError {
mHeaders.put("User-Agent", "Android:1.0:2009chenqc@163.com");
mHeaders.put("Cookie",cookie);
}
}
更多类型的post解释,可参见:http://www.open-open.com/lib/view/open1407727047207.html
点击查看更多内容
为 TA 点赞
评论
共同学习,写下你的评论
评论加载中...
作者其他优质文章
正在加载中
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦