当尝试通过https从Windows 7和Windows Server 2016传输大小超过64kb的JSON时,Python OpenSSL“WantWriteError”

eh57zj3b  于 2023-03-20  发布在  Python
关注(0)|答案(1)|浏览(100)

我有一个python服务器客户端实现,使用了以下包-Cherrypy、PyOpenSSL、requests。对某www.example.com的响应requests.post是JSON数据,大小超过64 kb。服务器是Windows Server 2016,客户端是Windows 7/10。当我通过端口80http* 中尝试相同请求时整个数据被传输,而如果我通过https端口443上执行同样的操作,则只传输了64 kb的数据,并且传输被终止,没有任何错误。响应代码为200 OK,即使整个JSON没有被传输。
而如果服务器是
Windows 10**,则整个数据通过https和http传输。我运行的是python 3. 7。从python 2. 7迁移到python 3. 7后观察到上述行为。在PyOpenSSL级别抛出的错误是“WantWriteError",这表明套接字缓冲区过载,我不知道如何解决这个问题,操作系统之间有什么不同。我感谢任何想法或建议。

w3nuxt5m

w3nuxt5m1#

这可能是Cheroot中的错误,请参见https://github.com/cherrypy/cheroot/issues/245
您可以在那里找到一些潜在的变通方法,您可以尝试,直到这个问题得到解决。此外,您可以尝试使用builtin TLS适配器而不是pyopenssl

相关问题