1.获取服务器返回的cookie值,重写request中的parseNetworkResponse方法就可以了
[java] view plaincopy
StringRequest request= new StringRequest(Method.POST, url,
this, this) {
@Override
protected Response<String> parseNetworkResponse(
NetworkResponse response) {
// TODO Auto-generated method stub
try {
Map<String, String> responseHeaders = response.headers;
String rawCookies = responseHeaders.get("Set-Cookie");
String dataString = new String(response.data, "UTF-8");
return Response.success(dataString,HttpHeaderParser.parseCacheHeaders(response));
} catch (UnsupportedEncodingException e) {
return Response.error(new ParseError(e));
}
}
};
2.有时服务器会返回多个 Set-Cookie 值,而Volley默认只取第一个,如果有需求,就要自己修改Volley的代码啦,HurlStack(sdk_int>9会走这里)里面的performRequest,默认解析header方式如下,
多个值的话只需要拿到header.getValue().get(1)等等,具体需求可以自行修改。
[java] view plaincopy
Header h = new BasicHeader(header.getKey(), header.getValue().get(0));
response.addHeader(h);
3.给服务器上传Cookie值,如下(因为该类实现了response和error接口,所以参数直接写的this)
[java] view plaincopy
StringRequest request= new StringRequest(Method.POST, url,
this, this) {
public Map<String, String> getHeaders() throws AuthFailureError {
HashMap localHashMap = new HashMap();
localHashMap.put("Cookie", "你的cookie值");
return localHashMap;
}
//设置post参数
protected Map<String, String> getParams() {
if(params==null){
return new HashMap<String, String>();
}
return params;
}
[java] view plaincopy
//设置编码格式
@Override
protected Response<String> parseNetworkResponse(
NetworkResponse response) {
// TODO Auto-generated method stub
try {
String dataString = new String(response.data, "UTF-8");
return Response.success(dataString,HttpHeaderParser.parseCacheHeaders(response));
} catch (UnsupportedEncodingException e) {
return Response.error(new ParseError(e));
}
}
};
分享到:
相关推荐
volley获取图片并缓存,可以再离线状态查看
volley请求网络,带cookie及不带cookie等各种请求方式
volley使用演示,解决中文乱码问题。 获取json格式天气信息,使用JSONObject解析数据
详细的代码注释帮助你获取网络数据Json和Xml,详细的解析,有图有真相
volley的Library文件,原始的volley只能获取第一条cookie信息 现在改为可以获取所有的cookie信息 具体的怎么改的可以参见这个博客 http://blog.csdn.net/qiang_xi/article/details/50608653
Volley_下载网页 volley实现下载网页数据
git clone https://android.googlesource.com/platform/frameworks/volley获取的最新版
volley访问网络图片 先判断是否有本地缓存 读取缓存生成本地图片,存到指定位置 自定义一个CustomNetworkImageView显示本地的Bitmap
使用Volley框架post从网络上获取数据
采用volley的联网方式,实现解析服务端返回的xml数据
com.android.volley:volley volley.jar
Android Volley 支持多个volley
(String、Json、image有三种)我自己参照郭神的博客写的代码,新手很容易看懂,就写了5个方法,大家可以看看,因为要经常下文档没有积分了,所以资源分1分就当大家打赏给我的吧,谢谢了。大家直接导入应该就可以了...
Android Volley的jar包,包中含有源码。
使用Volley框架GET从网络上获取数据
这是volley的源码以及jar包,用于小数据量的频繁的网络请求。
1.获取String、Bean、Json等类型的数据 2.提交表单数据 3.上传文件 4.加载图片,并且使用三级缓存 将Volley的相关操作封装成一个库,下载文件包含Volley工具库和一个使用实例,下载之后直接使用Android studio打开...
volley架包
网络请求框架volley-master网络请求框架volley-master