提供的答案需要一些有关 qlik 服务器身份验证的更多详细信息
我正在尝试连接到qlik
通过 WebSocket 使用证书。
Error:
websocket._exceptions.WebSocketProxyException: failed CONNECT via proxy status: 503
Code:
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()
*Note:
- 我的网络有代理。
- 我在每个领域都使用了正确的价值观,例如
sensehost,
userDirectory, userId
请帮助或任何建议来连接 qlik。
最终目标:将 Qlik KPI 值/图表放入 django 动态开发的前端!
部分答案:
根据Qlik .net SDK文档 https://help.qlik.com/en-US/sense-developer/November2018/Subsystems/NetSDKAPI/Content/Sense_NetSDKAPI/GettingStarted/Getting-Started-Steps.htm, 他们说Port: With proxy (443), without proxy (4747) or without security (80).
所以,我改变了url = "wss://" + senseHost + ":4747/app/"
to url = "wss://" + senseHost + ":443/app/"
Pending:
无法使用证书登录。我想使用 NTLM 身份验证。如何在 python 中将 NTLM 身份验证传递给 websocket 链接。
如果您有可以解决这两个问题的解决方案,请编辑或编写新答案。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)