2015-02-09 48 views
0

我到处阅读,凌空将使用HttpUrlConnection为新版本api或HttpClient为旧版本,我试图告诉凌空只使用HttpUrlConnection。使用HttpUrlConnection与凌空

我的主要目标是设置齐射以使用我在商店中存储的cookie执行请求,并且要做到这一点,我知道我需要使用cookie设置HttpUrlConnection,然后将它传递给齐次以用作默认实现。

到目前为止很好,但我不知道如何启动HttpUrlConnection并将cookie添加到它。

有人可以请给我一个小例子如何初始化HttpUrlConnection并添加一个cookie到它,然后传递给凌空?

我能够对HttpUrlConnection本身执行这样的请求,它工作,但我该如何设置它与排气使用?

URL urlLink = new URL(url2); 
HttpURLConnection conenction = (HttpURLConnection)urlLink.openConnection(); 
conenction.setRequestProperty("Cookie", cookie); 
+0

我建议您使用[OkHttp库](http://square.github.io/okhttp)。它有很多优化,'HttpUrlConnection'在Gingerbread之前有一些缺陷,这就是为什么Volley中缺省的'HttpStack'实现在那里使用Apache的'HttpClient'。 – corsair992 2015-02-09 21:23:23

回答

4

我读的每个地方凌空将使用两种HttpURLConnection类的较新版本的API或HttpClient的较旧版本,我想告诉凌空只使用HttpURLConnection类。

这是正确的。请参阅Volley source的第54-60行。如果您的应用在使用Gingerbread(API级别9)或更高级别的设备上运行,则它已经对所有请求使用HttpUrlConnection

如果你真的想用自己的HttpUrlConnection实例您的要求,您将需要实现自己的HttpStack(见排球的HurlStack的例子)。您可以使用Volley# newRequestQueue(Context, HttpStack)来告诉Volley使用您的自定义堆栈。

然而,发送cookie有多种选择。我建议检查this question这些替代方案。