Python将失败的重定向显示为有效

时间:2016-10-26 19:35:45

标签: python url redirect

我正在尝试查看 pricipal.com 的重定向。使用开发人员工具时,我可以看到重定向失败,状态码为400.但是,使用python时,我看到状态码:200

这是我正在使用的代码:

import requests
import urllib.request, urllib.error
import vertica_python

r = requests.get('http://pricipal.com')
t = requests.ReadTimeout()
try:    
    print('#################')
# d = geturl(r)
# print(r.status_code)
    print("{}: {}".format(r, r.status_code))
    print('URL: ' + r.url)
    print("{}: {}".format('History: ', r.history))
    print("{}: {}".format(r, r.status_code))
    print('#################')
except requests.ConnectionError:
# prints the int of the status code. Find more at httpstatusrappers.com :)
    print('######FAIL#######')
    print(r + ": failed to connect")
    print(r.ConnectionError)
    print(r.url)
    print('Read timeout: ' + t)
    print('#################')
    print('done')

如何修改代码以正确显示重定向的状态代码为400而不是200?

谢谢!

1 个答案:

答案 0 :(得分:0)

默认情况下,requests follows redirects transparently。要在没有重定向的情况下获得初始响应,您可以检查r.history,或禁用这样的重定向:

import requests
r = requests.get('http://principal.com', allow_redirects=False)
print(r)