Python请求cURL的等效项--location-trusted

mkh04yzy  于 2022-11-13  发布在  Python
关注(0)|答案(3)|浏览(407)

使用cURL,我可以执行--location-trusted,以便允许将名称+密码发送到站点可能重定向到的所有主机(http://curl.haxx.se/docs/manpage.html#--location-trusted)。
我可以用Python对requests库做类似的事情吗?

o2gm4chl

o2gm4chl1#

如果您必须使用libcurl(这是合法的!),您需要将CURLOPT_UNRESTRICTED_AUTH选项传递给它。
虽然文档页面本身并没有提到它,但这是libcurl中命令行--location-trusted标志的等价物。

hc8w905p

hc8w905p2#

requests将自动处理重定向:https://requests.readthedocs.io/en/latest/user/quickstart/#redirection-and-history
因此,这应该是一个很好的开始(如果你还没有经历过):https://requests.readthedocs.io/en/latest/user/authentication/

ccgok5k5

ccgok5k53#

您可以使用urllib3.util.Retry对象,告知要求不要移除Authorization信头,因为它已重新导向而必须重试要求。

import requests

from requests.adapters import HTTPAdapter, Retry

s = requests.Session()
# Default is {'Authorization'}
retries = Retry(remove_headers_on_redirect=set())
s.mount('http://', HTTPAdapter(max_retries=retries))

s.get("http://httpstat.us/301", auth=('user', 'password'))

相关问题