Httpclient重定向处理程序

时间:2010-11-09 06:46:31

标签: android redirect httpclient

我正在尝试调用一些使用相对URL重定向进行某些调用的Web服务器。这当然不适用于DefaultHttpClient,因为它不将其视为相对URL。我已经实现了一个RedirectHandler,试图捕获重定向并添加基本调用,但我无法弄清楚如何获取重定向的位置。

使用以下方法,如何查找我被重定向到的位置?我无法在响应或上下文中找到任何具有我需要的字段,我不知道还有什么要看。

public URI getLocationURI(HttpResponse response, HttpContext context) 

2 个答案:

答案 0 :(得分:0)

看看这里:HttpClient 4 - how to capture last redirect URL

我会尝试getStatusLine()开始。

答案 1 :(得分:0)

我的解决方案是阅读位置标题并关注它们。这对我有所帮助:

if (statusCode != HttpStatus.SC_OK) {
    Header[] headers = response.getHeaders("Location");

    if (headers != null && headers.length != 0) {
        String newUrl = headers[headers.length - 1].getValue();
        // call again the same downloading method with new URL
        return downloadBitmap(newUrl);
    } else {
        return null;
    }
}

我的帖子中有更多内容 - Follow 302 redirects with AndroidHttpClient