HTTPConnectionPool重定向不起作用

时间:2017-06-07 18:25:05

标签: python redirect

假设这个页面" www.test.com/redirecttest"重定向到另一个页面" www.google.com"

以下代码未重定向到google页面,但仅返回test.com页面的404状态。所有浏览器在重定向页面时都能正常工作。

如何从python中为重定向页面获取HTTPConnectionPool的响应?

firstPool = HTTPConnectionPool(firstServerURL, maxsize=10, retries =10)

res = firstPool.request("GET", "http://www.test.com/redirecttest",assert_same_host=False,redirect=True)

如果我删除assert_same_host=False,则会返回错误

  

尝试使用网址http://www.google.com打开外国主机。

所以我添加了assert_same_host=False以避免该错误。

1 个答案:

答案 0 :(得分:0)

HTTPConnectionPool是用于连接“一个特定主机”的池。如果将请求重定向到另一台主机,则表示您“离开”此特定主机。因此,如果没有assert_same_hos=False,您将收到文档中描述的HostChangedError异常:http://urllib3.readthedocs.io/en/1.0.2/pools.html#api