gpt4 book ai didi

python - 为什么 httplib 和 urllib 返回的响应码不匹配?

转载 作者:可可西里 更新时间:2023-11-01 16:27:25 25 4
gpt4 key购买 nike

我正在编写一个死链接检测器并想知道我应该使用哪个库,httplib 和 urllib,所以我都尝试了。

def http_response_code(url):
host = urlparse(url)[1]
req = '/'.join(urlparse(url)[2:5])
conn = httplib.HTTPConnection(host)
conn.request('HEAD', req)
res = conn.getresponse()
return res.status, res.reason

def urllib_response_code(url):
a = urllib.urlopen(url)
return a.getcode()


def main():
url = 'http://1010wins.com/content_page.php?contenttype=4&contentid=6077355'
print http_response_code(url)
print urllib_response_code(url)

但我对上述两种方法返回的结果不匹配感到困惑,它们是:

(302, 'Found')
200

我想可能是因为 urllib 自动检测重定向并获取最终目标页面,然后返回响应代码?

谢谢。

最佳答案

302 是重定向的 HTTP 状态代码(参见示例 here ),httplib(下层库)忠实地返回它,而 urllib 会自动跟随重定向并为您提供最终结果状态代码(200 表示“一切正常”)。

选择最适合你想工作的抽象层的库 -- httplib 给你更多的控制权,但它不那么通用(不会对其他协议(protocol)的 URL 做任何事情,比如例如 ftp: 等)和较低级别(因此您必须做更多的工作!-)。

关于python - 为什么 httplib 和 urllib 返回的响应码不匹配?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3155073/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com