至于 cookie,我为继续使用 URLConnetion(这是 API > 8 上 Volley 的默认用例)所做的是实现一个扩展 HurlStack 的自定义类(Volley 使用 URLConnection 实现 HTTP 客户端),并覆盖 createConnection( URL url),这是用于在每个请求之前获取连接的方法。我刚刚添加了我的用户代理(默认情况下没有发送,使用 HurlStack)和一个 cookie(也没有在 HurlStack 中自动管理)。
这是我的课程代码:
public class CustomHurlStack extends HurlStack {
public CustomHurlStack() {
super();
}
@Override
protected HttpURLConnection createConnection(URL url) throws IOException {
// Create a connection with custom attributes
HttpURLConnection conn = super.createConnection(url);
conn.addRequestProperty("User-Agent", "myUserAgent/1.0");
conn.addRequestProperty("cookie", "myCookie");
return conn;
}
}
这应该是一个可行的解决方案,我不确定为什么 Volley 不包含这样一个可配置的类来使用,但是哦,你可以在短短一分钟左右的时间里创建自己的,如上所述。