相关疑难解决方法(0)

防止HttpClient 4跟随重定向

我正在使用Apache HttpComponents库连接到我的AppEngine应用程序.为了验证我的用户身份,我需要将身份验证令牌传递给应用程序的登录地址(http://myapp.appspot.com/_ah/login?auth= ..)并从头部抓取一个cookie.响应.但是,登录页面以重定向状态代码响应,我不知道如何阻止HttpClient跟踪重定向,从而阻止我拦截cookie.

Fwiw,我用来发送请求的实际方法如下.

private void execute(HttpClient client, HttpRequestBase method) {
    // Set up an error handler
    BasicHttpResponse errorResponse = new BasicHttpResponse(
            new ProtocolVersion("HTTP_ERROR", 1, 1), 500, "ERROR");

    try {
        // Call HttpClient execute
        client.execute(method, this.responseHandler);
    } catch (Exception e) {
        errorResponse.setReasonPhrase(e.getMessage());
        try {
            this.responseHandler.handleResponse(errorResponse);
        } catch (Exception ex) {
            // log and/or handle
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

如何阻止客户端跟踪重定向?

谢谢.

更新:

根据下面的解决方案,我在创建一个DefaultHttpClient client(并在将其传递给execute方法之前)之后执行了以下操作:

if (!this.followRedirect) {
    client.setRedirectHandler(new RedirectHandler() {
        public URI getLocationURI(HttpResponse response,
                HttpContext …
Run Code Online (Sandbox Code Playgroud)

google-app-engine android apache-commons

20
推荐指数
3
解决办法
2万
查看次数