我收到以下输出
301永久移动---使用http.client时
200 ---使用请求时
网址处理“http://i.imgur.com/fyxDric.jpg”作为arg通过命令
传递我的期望是给我200状态好的回复。
这是身体
if scheme == 'http':
print('Ruuning in the http')
conn = http.client.HTTPConnection("www.i.imgur.com")
conn.request("GET", urlparse(url).path)
conn_resp = conn.getresponse()
body = conn_resp.read()
print(conn_resp.status, conn_resp.reason, body)
使用请求时
headers = {'User-Agent': 'Mozilla/5.0 Chrome/54.0.2840.71 Safari/537.36'}
response = requests.get(url, allow_redirects=False)
print(response.status_code)
答案 0 :(得分:2)
http
模块上的文档在其第一句中包含“通常不直接使用”。与requests
不同,它不会对301响应执行操作并遵循标头中的重定向。它会返回301,您必须自己处理。
答案 1 :(得分:2)
您正试图点击http
,但imgur将其所有请求重定向到https
处理。
由于此重定向,问题正在发生。
http
模块本身并不处理重定向所需的重定向,而requests
模块自己处理这些重定向。