gpt4 book ai didi

python-3.x - 是否可以将端口号添加到 python 请求主机名?

转载 作者:太空宇宙 更新时间:2023-11-03 14:28:02 24 4
gpt4 key购买 nike

我看过一些帖子,建议使用 python 请求指定端口号,只需将其添加到主机之后:例如 'google.com:443'(我想发出 https 请求端口 443)。

但是,我不确定如果我使用 requests.Session() 会怎样?

在这种情况下,我指定了一个适配器(代码受益于 this post )

myCiphers = "AES128-SHA" +":"+  "AES256-SHA"

class myAdapter(HTTPAdapter):

def init_poolmanager(self, *args, **kwargs):
context = create_urllib3_context(ciphers=myCiphers)
kwargs['ssl_context'] = context
return super(myAdapter, self).init_poolmanager(*args, **kwargs)

def proxy_manager_for(self, *args, **kwargs):
context = create_urllib3_context(ciphers=defaultCiphers)
kwargs['ssl_context'] = context
return super(myAdapter, self).proxy_manager_for(*args, **kwargs)

myhost = 'https://google.com:443'
s = requests.Session()
s.mount(myhost,myAdapter())
response = s.get(myhost,verify=False,timeout=1)

代码似乎可以工作,但这些库有点棘手,恐怕在将主机安装到适配器时,这种指定帖子编号的方式不正确。

请有经验的人确认一下,上面在请求 session 中挂载 HTTP 适配器指定端口号的方法,以及在发出 get 请求时是正确的吗?

最佳答案

requests.Session() 中已注册(已安装)的 HTTP 适配器仅通过最长字符串前缀 进行匹配,不区分大小写。如果您希望您的适配器应用于以字符串 https://google.com:443 开头的 url,那么您就正确地使用了它。

主机名后的语法 :port 是指定要使用的端口的正确方法。如果没有 :port,则使用默认的方案。对于https方案,默认是443端口,所以在URL中使用:443在这里是多余的。

但是,当安装适配器时,没有进行规范化,因此前缀 'https://google.com:443' 将不匹配 https://google.com/ 即使两者都寻址相同的主机名和端口。

关于python-3.x - 是否可以将端口号添加到 python 请求主机名?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55168857/

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