2

我之前在使用 HttpURLConnection 时遇到过一些问题,我正在开发的应用程序 >= 4.0。有什么方法可以将 Apache 4.2 HttpClient(在此处重新打包)与 Google Volley 一起使用?

目前我只使用 Apache 4.2 HttpClient,但是出于速度和稳定性的原因,我想切换 Volley 的 IO 演示。

提前致谢!

4

3 回答 3

3

当您实例化队列时,请使用以下队列。

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;
    }
}
于 2013-07-16T13:29:15.433 回答
2

以下应该足够了:

mRequestQueue = Volley.newRequestQueue(context, new HttpClientStack(new DefaultHttpClient()));
于 2014-05-10T03:20:24.957 回答
1

接受的答案有错误。它应该扩展 HttpClientStack 而不是 HurlStack。如果扩展 HUrlStack,则不使用传入的 httpclient。可以查看Volley库里面的PerformRequest方法,发现没有使用客户端。

下面是执行此操作的正确代码。

public class ApacheStack extends HttpClientStack {

    private final HttpClient client;

    public ApacheStack(HttpClient client) {
        super(client);
        ....

    }
}
于 2014-11-07T17:32:54.200 回答