Volley的学习笔记

说明:对于大数据量的网络操作,Volley的表现会比较糟糕,所有对于下载图片和上传文件之类的,最好不扩展Volley进行上传文件操作。


1,上传客户端到服务端的请求头信息:
StringRequest request = new StringRequest(urlValCode, new ValCodeListener(), new ValCodeErrorListener())
{
 /**
  * 覆盖getHeaders()方法,表示上传请求头信息,Volley封装好之后提供给外界调用的一个方法,它不是必须的。
  */
 @Override
 public Map<String, String> getHeaders() throws AuthFailureError
 {
  Map<String, String> headMap = new HashMap<String, String>();
  headMap.put("User-Agent", getUserAgent());
  return headMap;
 }
};
requestQueue.add(request);
自己修改源码的方式:
  在BasicNetwork类的performRequest方法中修改。将你要添加的头部信息加入到headers集合中;因为看源码可知,不管是HurlStack还是HttpClientStack的performRequest方法,
  都必须经过BasicNetwork的performRequest方法中进行调用。或者直接修改getHeaders()方法。
  获取相应头的信息,一样可以在BasicNetwork类的performRequest方法中获取,httpResponse = mHttpStack.performRequest(request, headers);其中httpResponse就是你想要的
  响应信息。httpResponse.getAllHeaders();就是你想要的所有头信息。

2、请求参数的传递,选择Method.POST方法:
StringRequest loginRequest = new StringRequest(Method.POST,urlLogin, new LoginListener(), new ValCodeErrorListener())
{
 @Override
 protected Map<String, String> getParams() throws AuthFailureError
 {
  Map<String, String> paramsMap = new HashMap<String, String>();
  headMap.put("xxxxx", "xxxxx");
  return paramsMap;
 }
};
requestQueue.add(loginRequest);

3、http请求,如果要保持客户端与服务端每次的请求与响应的Cookie JSESSIONID一致,则客户端每次接收完服务端的响应之后,必须先保存改响应回来的Cookie JSESSIONID,等到下次
 请求的时候再把该JSESSIONID放在请求头发送给服务端。
 
  
4、加载图片:加载图片暂时还是不选择Volley,因为其没有处理OOM异常情况。可以使用Android-Universal-Image-Loader-master;


 

相关推荐