我正在尝试调用一些使用相对URL重定向进行某些调用的Web服务器。这当然不适用于DefaultHttpClient,因为它不将其视为相对URL。我已经实现了一个RedirectHandler,试图捕获重定向并添加基本调用,但我无法弄清楚如何获取重定向的位置。
使用以下方法,如何查找我被重定向到的位置?我无法在响应或上下文中找到任何具有我需要的字段,我不知道还有什么要看。
public URI getLocationURI(HttpResponse response, HttpContext context)
答案 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