蟒蛇连接有问题



我正在使用Python soap API客户端Zeep,这是我编写的代码:

from zeep import Client
def myapi(request):
client = Client("https://siteURL.asmx?wsdl")
key = client.service.LogOnUser('myusername', 'mypassord')
print(key)

它给我一个错误,因为:[WinError 10060] 连接尝试失败,因为连接方在一段时间后未正确响应,或者建立的连接失败,因为连接的主机无法响应

当我尝试以下命令时,URL 运行良好并显示它拥有的所有服务

python -mzeep https://siteURL.asmx?wsdl

请帮助了解上述代码不起作用的原因是什么。

PS:我无法共享我尝试连接到的网站URL。

附加信息:该站点/页面只能通过内部网访问,我正在从内部网本身进行本地测试。

回溯错误:

Exception Type: ConnectionError at /music/mypersonalapi/
Exception Value: HTTPSConnectionPool(host='URL I have hidden', port=81): 
Max retries exceeded with url: /ABC/XYZ/Logon.asmx
(Caused by NewConnectionError('<urllib3.connection.VerifiedHTTPSConnection object at 0x0546E770>: 
Failed to establish a new connection:
[WinError 10060] A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond',))

请注意:出于保密原因,我已从回溯中删除了 URL 和主机信息

这样做:

python -mzeep https://site/url.asmx?wsdl

是:

c = Client("https://site/url.asmx?wsdl")
c.wsdl.dump()

这两种选择都使用端口 443,因为这是默认的 HTTPS 端口。

从您的回溯中,我们看到

Exception Value: HTTPSConnectionPool(host='URL I have hidden', port=81): 

这将类似于

python -mzeep https://site:81/url.asmx?wsdl

即命令行和您的代码没有连接到同一个地址(另请注意,小于 1024 的端口值需要系统级权限才能使用 - 如果您也在编写/控制服务(。

最后一行确实说"..失败是因为关联方在一段时间后没有正确响应......",但这不是根本原因。在第 3 行中,您可以阅读

Max retries exceeded with url: /ABC/XYZ/Logon.asmx

换句话说,您尝试(但失败(登录的次数太多,并且服务器可能会在每次尝试时将用于响应的时间增加一倍(这是众所周知的缓解策略,用于多次登录失败的"事物" - 即看起来像攻击(。延长的延迟很可能导致您在底部看到错误消息。

您需要等待一段时间,或者重置该服务的帐户,如果该服务是您的,那么也许在开发过程中关闭此功能?

也许这会有所帮助。我遇到了同样的连接问题(超过最大重试次数...我通过增加传输超时解决了它。

client = Client(wsdl=wsdl, transport=Transport(session=session, timeout=120))

相关内容

  • 没有找到相关文章

最新更新