gpt4 book ai didi

python-3.x - 在 urllib3 中,HTTP 请求挂起...但在curl 中则不然

转载 作者:行者123 更新时间:2023-12-02 17:58:15 25 4
gpt4 key购买 nike

(感谢您查看此内容!)

我正在尝试使用 python3 和简单的 urllib3 http.request 从 https://login.morganstanleyclientserv.com 读取 HTML 。

服务器似乎正在重置连接,最终 urllib3 的重试放弃。

这里是否存在 TLS 协商问题?如果是这样,urllib3如何补偿?

或者问题出在其他地方?如何解决这个问题?

<小时/>

我已经尝试使用curl进行相同的(?)事务...它返回预期的HTML,没有任何延迟。

我还尝试从不同的网站阅读(例如 https://client.schwab.com/Login/SignOn/CustomerCenterLogin.aspx )...没问题。

Chrome 加载 https://login.morganstanleyclientserv.com没有问题。

uname -a ; python3 -V 返回:

Linux ubuntu 4.18.0-17-generic#18~18.04.1-Ubuntu SMP 3 月 15 日星期五 15:27:12 UTC 2019 x86_64 x86_64 x86_64 GNU/LinuxPython 3.6.7

<小时/>

这是有效的 curl :

curl -v --user-agent "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.103 Safari/537.36" --header "Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3" --header "Accept-Encoding: text/plain" --header "Accept-Language: en-US,en;q=0.9" --output foo  https://login.morganstanleyclientserv.com 

这是挂起的 python3 + urllib3 代码(打印 1 后,然后打印 2,但不打印其他任何内容):

import urllib3
import certifi

print (1)
try:
http = urllib3.PoolManager(cert_reqs = 'CERT_REQUIRED',
ca_certs = certifi.where())

headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.103 Safari/537.36',
'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3',
'Accept-Encoding': 'text/plain',
'Accept-Language':'en-US,en;q=0.9'
}
print (2)
# *** This hangs ***
r = http.request("GET", "https://login.morganstanleyclientserv.com", headers)
print (3)
print (r.data)
print (4)
except Exception as e:
print(e)
except:
print("error")

最佳答案

作为一个 python 新手,我忽略了在 http.request 调用中命名 headers 参数。它应该是:

r = http.request("GET", "https://login.morganstanleyclientserv.com", headers=headers)

感谢艾德基!

关于python-3.x - 在 urllib3 中,HTTP 请求挂起...但在curl 中则不然,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55859208/

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