我有一个应该在Android上运行的应用程序,希望从2.3到4.4.2开始。
我正在尝试使用Apache HttpClient发出HTTP POST请求,我想启用自动重定向。
我已经使用纯Java创建了一个代码,并安装了HttpClient库。它使用setRedirect(new LaxRedirectStrategy)
。
Homever,我的Android项目并没有被接受。
我在互联网上遇到的解决方案都没有起作用:
httpclient.getParams().setParameter(ClientPNames.HANDLE_REDIRECTS, true);
httpclient.getParams().setParameter("http.protocol.allow-circular-redirects", true);
HttpClientParams.setRedirecting(httpclient.getParams(), true);
...
Eclipse并不识别setRedirectStrategy()方法,尽管Android 4.4.2库与我的项目捆绑在一起。
如果我有时间,我会尝试自己处理重定向,或者更好的是,切换到HttpUrlConnection,这似乎好多了。但这是一个巨大的私人图书馆,我为很多网络服务而设,我现在没有时间去做。有没有办法以简单的方式启用自动重定向?
整个代码如下所示:
DefaultHttpClient client = new DefaultHttpClient();
client.setCookieStore(cookies);
client.getParams().setParameter(ClientPNames.HANDLE_REDIRECTS, true);
client.getParams().setParameter("http.protocol.allow-circular-redirects", true);
HttpClientParams.setRedirecting(client.getParams(), true);
client.getParams().setParameter("http.protocol.version",
HttpVersion.HTTP_1_0) ;
答案 0 :(得分:1)
我遇到了类似的问题(我现在使用REST API的凌空库),但我认为添加它可能会有所帮助:
httpclient.getParams().setParameter("http.protocol.version",
HttpVersion.HTTP_1_0)
版本似乎在android和java之间有所不同。
如果有效,请告诉我。上帝保佑。
Jonny 2 Plates