使用Requests 2.28.2调用Tableau Server REST API登录时遇连接中断问题求助
解决requests登录Tableau Server时的RemoteDisconnected错误
核对请求地址与端口
确认Tableau Server REST API的URL、协议(HTTP/HTTPS)及端口完全正确,默认情况下Tableau Server的REST API使用80(HTTP)或443(HTTPS)端口,自定义端口需对应配置,避免因地址错误触发服务器无响应断开。规范会话使用与请求头设置
Tableau登录依赖会话保持,需正确使用requests.Session()维持会话,并设置符合要求的请求头。根据Tableau Server版本,Content-Type通常设为application/json或application/x-www-form-urlencoded,示例代码如下:import requests # 初始化会话 session = requests.Session() session.headers.update({ 'Content-Type': 'application/json', 'Accept': 'application/json' }) # 登录请求示例 login_data = { "credentials": { "name": "你的用户名", "password": "你的密码", "site": {"contentUrl": ""} # 默认站点传空字符串 } } try: resp = session.post('https://你的Tableau服务器地址/api/3.19/auth/signin', json=login_data) resp.raise_for_status() print("登录成功") except requests.exceptions.RequestException as e: print(f"错误信息: {e}")添加请求超时参数
服务器处理延迟可能导致连接中断,给POST请求添加超时限制,避免无限等待:resp = session.post(login_url, json=login_data, timeout=30) # 超时30秒临时禁用SSL验证(仅限测试环境)
若测试环境使用自签名SSL证书,SSL验证失败可能引发连接断开,可临时关闭验证(生产环境禁止使用):# 关闭SSL验证 resp = session.post(login_url, json=login_data, verify=False) # 屏蔽SSL警告 import urllib3 urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning)排查服务器端配置
确认Tableau Server的REST API服务正常运行,服务器防火墙允许客户端IP访问,同时检查服务器是否存在连接数限制、会话超时过短等配置问题。
内容的提问来源于stack exchange,提问作者Rishav Kaushik
相关产品推荐
相关产品推荐

