Python Requests调用Sauce Labs API持续返回404错误求助
排查Python requests调用Sauce Labs API返回404的问题
问题详情
我尝试用Python的requests库调用Sauce Labs API获取任务详情,但无论怎么操作,请求始终返回404错误——哪怕把参数硬编码进去也没用。这个请求在Postman中可以正常执行,Postman导出的使用其他库的Python代码也能正常运行,但目前无法更换使用的库。此前这段代码曾正常工作,现在突然失效,希望有人帮忙排查问题。
代码片段
url = f'https://api.us-west-1.saucelabs.com/rest/v1/{sauce_username}/jobs/{job_id}' response = requests.get(url, auth=(sauce_username, sauce_access_key)) # print(response.decode('utf-8')) print(response.status_code)
排查建议
- 检查变量格式:确认
sauce_username和job_id中是否包含特殊字符(如斜杠、空格、百分号等),requests不会自动编码URL路径中的特殊字符,需要用urllib.parse.quote()对变量手动编码后再拼接URL。 - 核对API区域:Sauce Labs不同区域的API端点不同,确认代码中使用的
us-west-1区域是否和Postman中一致,是否存在区域切换导致端点不匹配的情况。 - 更换认证方式尝试:虽然
auth参数是requests推荐的Basic Auth方式,但可以手动构造认证头测试,代码示例:import base64 auth_str = f"{sauce_username}:{sauce_access_key}" auth_base64 = base64.b64encode(auth_str.encode('utf-8')).decode('utf-8') headers = {'Authorization': f'Basic {auth_base64}'} response = requests.get(url, headers=headers) - 查看完整响应内容:取消注释并修改为
print(response.text),查看Sauce Labs返回的具体错误信息,404通常会附带任务不存在、权限不足等明确原因。 - 确认账号与任务状态:检查当前账号是否仍拥有该任务的访问权限,任务是否被删除、归档,近期账号权限是否有变更。
内容的提问来源于stack exchange,提问作者Chaffe
相关产品推荐
相关产品推荐

