【发布时间】:2012-12-05 07:53:05
【问题描述】:
有没有办法制作一个自定义重定向处理程序,它告诉 Apache HttpClient 在重定向发生之前我想要重定向到哪里,在 post 方法执行之后?这是因为我在响应页面中收到错误,我的猜测是这是由于相对重定向,没有正确解释。谢谢。
【问题讨论】:
标签: java android redirect apache-commons-httpclient
有没有办法制作一个自定义重定向处理程序,它告诉 Apache HttpClient 在重定向发生之前我想要重定向到哪里,在 post 方法执行之后?这是因为我在响应页面中收到错误,我的猜测是这是由于相对重定向,没有正确解释。谢谢。
【问题讨论】:
标签: java android redirect apache-commons-httpclient
不确定“在重定向发生之前重定向”是什么意思,但您可以创建自己的重定向处理程序并替换默认处理程序。然后,您可以随意处理 Location 标头。在任何情况下,如果默认的不能正确处理它,很可能是一些服务器配置错误。这是接口的默认实现供参考:
http://developer.android.com/reference/org/apache/http/client/RedirectHandler.html
http://developer.android.com/reference/org/apache/http/impl/client/DefaultRedirectHandler.html
【讨论】:
DefaultRedirectHandler的来源以获得提示。它检查isRedirectRequested() 中的状态码,并为301、302 等返回true。然后getLocationURI() 提取Location 标头并返回URL 以进行下一步。它确实为您处理相对和绝对,因此记录标题和位置并与您的期望进行比较。然后根据需要进行调整。