websocket._exceptions.WebSocketProxyException:通过代理连接失败状态:503

Posted

技术标签:

【中文标题】websocket._exceptions.WebSocketProxyException:通过代理连接失败状态:503【英文标题】:websocket._exceptions.WebSocketProxyException: failed CONNECT via proxy status: 503 【发布时间】:2019-07-02 08:40:28 【问题描述】:

提供的答案需要更多关于使用 qlik 服务器进行身份验证的详细信息

我正在尝试通过 WebSockets 使用证书连接到 qlik

错误:

websocket._exceptions.WebSocketProxyException: failed CONNECT via proxy status: 503

代码:

from websocket import create_connection  
import ssl  


senseHost = "dummy.xyz.com"  
privateKeyPath = "C:\\ProgramData\\Qlik\\Sense\\Repository\\Exported Certificates\\"  


## userDirectory and userId can be found at QMC -> Users  
userDirectory, userId = "DIRECTORY_OF_SERVER","QlikServerUserId"  


url = "wss://" + senseHost + ":4747/app/"  # valid  
certs = ("ca_certs": privateKeyPath + "root.pem",  
            "certfile": privateKeyPath + "client.pem",  
            "keyfile": privateKeyPath + "client_key.pem",  
            "cert_reqs":ssl.CERT_REQUIRED,  
            "server_side": False  
            )  
ssl.match_hostname = lambda cert, hostname: True  
ws = create_connection(url, sslopt=certs,
                       http_proxy_host="xyz.corp.company.com",
                       http_proxy_port="80",
                       http_no_proxy="*.corp.company.com;*.abc.com;*.pqr.com;"
                       header='X-Qlik-User: UserDirectory=%s; UserId=%s'% (userDirectory, userId))  
session = self.ws.recv()

*注意:

我的网络有代理。 我在每个字段中都使用了正确的值,例如sensehost, userDirectory, userId

请帮助或任何建议可以连接 qlik。

最终目标:将 Qlik KPI 值/图表导入 django 动态开发的前端!

【问题讨论】:

你的私钥路径有错误 @MadPhysicist,已编辑的私钥路径有问题。我得到同样的错误。请帮忙! 我删除了你问题的最后一行,因为这不是 Facebook 现在最后有一个杂散空间 @MadPhysicist,是的,因为 ` \ ` 考虑特殊字符。如果我不使用空间,它不会占用"。你能告诉那个转义字符还有其他方法吗? 【参考方案1】:

部分答案:

根据Qlik .net SDK documentation,他们说Port: With proxy (443), without proxy (4747) or without security (80).

所以,我将url = "wss://" + senseHost + ":4747/app/" 更改为url = "wss://" + senseHost + ":443/app/"

待处理:

无法使用证书登录。我想使用 NTLM 身份验证。如何将 NTLM 身份验证传递给 python 中的 websocket 链接。

如果您有可以解决这两个问题的解决方案,请编辑或编写新答案。

【讨论】:

以上是关于websocket._exceptions.WebSocketProxyException:通过代理连接失败状态:503的主要内容,如果未能解决你的问题,请参考以下文章

Flask+gevent-websocket模块实现websocket

如何将 $_SESSION 变量传递给 websocket 服务器?

websocket._exceptions.WebSocketBadStatusException:握手状态 404 未找到

C#-WebSocket协议通讯_Net5

Unity+Firebase-Database [错误] WebSocket:ws_0 - 无法连接

php开启websocket服务,php实现简单的websocket服务