我有以下情况:
将Android HttpClient重定向到备用位置,重定向url返回一个url参数,该参数必须在重定向请求中作为额外的http标头传播。干涉的唯一方法是覆盖DefaultRedirectHandler.getLocationURI处理程序。 现在我的问题是:如何在
中public URI getLocationURI(HttpResponse response, HttpContext context)
我可以修改即将到来的请求。
答案 0 :(得分:2)
您必须创建RedirectHandler
的实现并覆盖getLocationURI()
。您可以通过
Header locationHeader = response.getFirstHeader("location");
String location = locationHeader.getValue();
从location
中提取您的网址参数,然后您可以通过
HttpRequest
BasicHttpRequest request = (BasicHttpRequest) context.getAttribute(
ExecutionContext.HTTP_REQUEST);
header.addHeader();
答案 1 :(得分:0)
我发现修改重定向请求的唯一方法是中断原始请求并在
中手动创建新请求 RedirectHandler and overwrite getLocationURI()
原始请求被中断并抛出
IllegalStateException