我之前在使用 HttpURLConnection 时遇到过一些问题,我正在开发的应用程序 >= 4.0。有什么方法可以将 Apache 4.2 HttpClient(在此处重新打包)与 Google Volley 一起使用?
目前我只使用 Apache 4.2 HttpClient,但是出于速度和稳定性的原因,我想切换 Volley 的 IO 演示。
提前致谢!
我之前在使用 HttpURLConnection 时遇到过一些问题,我正在开发的应用程序 >= 4.0。有什么方法可以将 Apache 4.2 HttpClient(在此处重新打包)与 Google Volley 一起使用?
目前我只使用 Apache 4.2 HttpClient,但是出于速度和稳定性的原因,我想切换 Volley 的 IO 演示。
提前致谢!
当您实例化队列时,请使用以下队列。
queue = Volley.newRequestQueue(getActivity(), new ApacheStack());
然后实现一个 ApacheStack,它像下面一样扩展 HurlStack 并覆盖必要的功能。
public class ApacheStack extends HurlStack {
private final HttpClient client;
public ApacheStack() {
this(new HttpClient());
}
public ApacheStack(HttpClient client) {
if (client == null) {
throw new NullPointerException("Client must not be null.");
}
this.client = client;
}
}
以下应该足够了:
mRequestQueue = Volley.newRequestQueue(context, new HttpClientStack(new DefaultHttpClient()));
接受的答案有错误。它应该扩展 HttpClientStack 而不是 HurlStack。如果扩展 HUrlStack,则不使用传入的 httpclient。可以查看Volley库里面的PerformRequest方法,发现没有使用客户端。
下面是执行此操作的正确代码。
public class ApacheStack extends HttpClientStack {
private final HttpClient client;
public ApacheStack(HttpClient client) {
super(client);
....
}
}