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 未找到