我到处读到凌空将使用HttpUrlConnection用于较新版本的api或HttpClient用于旧版本,我试图告诉凌空只使用HttpUrlConnection。
我的主要目标是使用我存储的cookie设置volley执行请求,为此我知道我需要使用cookie设置HttpUrlConnection,然后将其传递给volley以用作默认实现。
到目前为止一直很好,但我不知道如何启动HttpUrlConnection并将cookie添加到它。
有人可以给我一个小例子,说明如何初始化HttpUrlConnection并为其添加一个cookie,然后将其传递给凌空?
我能够在HttpUrlConnection上执行这样的请求并且它有效但是如何将其设置为与凌空一起使用?
URL urlLink = new URL(url2);
HttpURLConnection conenction = (HttpURLConnection)urlLink.openConnection();
conenction.setRequestProperty("Cookie", cookie);
答案 0 :(得分:5)
我到处读到凌空将使用HttpUrlConnection用于较新版本的api或HttpClient用于旧版本,我试图告诉凌空只使用HttpUrlConnection。
这是对的。见Volley
source的第54-60行。如果您的应用在使用Gingerbread(API级别9)或更高版本的设备上运行,则它已针对所有请求使用HttpUrlConnection
。
如果您真的想在请求中使用自己的HttpUrlConnection
实例,则需要实现自己的HttpStack
(有关示例,请参阅Volley的HurlStack
)。您可以使用Volley# newRequestQueue(Context, HttpStack)
告诉Volley使用您的自定义堆栈。
但是,有许多替代方法可以发送Cookie。我建议您查看this question部分替代方案。