【问题标题】:Httpclient redirect handlerHttpclient 重定向处理程序
【发布时间】:2010-11-09 06:46:31
【问题描述】:

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

通过以下方法,我该如何找出我被重定向到的位置?我在响应或上下文中找不到任何具有我需要的字段,而且我不知道还能去哪里查找。

public URI getLocationURI(HttpResponse response, HttpContext context) 

【问题讨论】:

    标签: android redirect httpclient


    【解决方案1】:

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

    我会尝试getStatusLine() 开始。

    【讨论】:

    • 我看到了那个帖子。该方法似乎用于查找请求完成后发生的重定向。当我在重定向期间尝试该方法时,我只会得到我输入的初始 URL。 getStatusLine() 只是给了我 200 OK
    【解决方案2】:

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

    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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多