HttpClient重定向处理程序

3
我正在尝试调用一个使用相对URL重定向的Web服务器。由于DefaultHttpClient没有将其视为相对URL,因此当然无法正常工作。我已经着手实现了RedirectHandler,试图捕获重定向并添加基本调用,但我不知道如何获取重定向的位置。通过以下方法,我该如何找到被重定向到哪里?我在响应(response)或上下文(context)中找不到需要的任何字段,并且不知道其他地方在哪里。
public URI getLocationURI(HttpResponse response, HttpContext context) 
2个回答

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;
    }
}

在我的帖子中了解更多- 如何使用AndroidHttpClient跟踪302重定向


0

3
我看了那篇帖子,那个方法似乎是用来找出请求完成后发生的重定向。但是当我在重定向期间尝试使用该方法时,我只能获得我最初输入的初始URL。 getStatusLine()仅仅给我返回200 OK。 - skorulis

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接