python-3.x - 使用 urllib 发布请求时获取 HTTP 400 错误请求
问题描述
当我尝试在 python3 中使用 urllib 发布测试用例结果时,从 testrail 服务器收到 HTTP 400 错误请求。感谢有人在这方面帮助我。谢谢!
下面是代码,
import urllib.request
import json
import base64
data = {'results':[{'case_id': '123','status_id': '1','comment': 'This test passed', 'version': '0.14.0-W9'}]}
headers = {}
post_data = urllib.parse.urlencode(data).encode()
auth = base64.b64encode(b'user:pass')
auth = auth.decode()
headers['Authorization'] = 'Basic %s' % auth
headers['Content-Type'] = 'application/json'
request = urllib.request.Request("http://testrail.com/index.php?/api/v2/add_results_for_cases/272374", data = post_data, headers = headers)
response = urllib.request.urlopen(request).read()
result = json.loads(response)
print(result)
和错误输出,
Traceback (most recent call last):
File "p3.py", line 13, in <module>
response = urllib.request.urlopen(request).read()
File "/usr/lib/python3.6/urllib/request.py", line 223, in urlopen
return opener.open(url, data, timeout)
File "/usr/lib/python3.6/urllib/request.py", line 532, in open
response = meth(req, response)
File "/usr/lib/python3.6/urllib/request.py", line 642, in http_response
'http', request, response, code, msg, hdrs)
File "/usr/lib/python3.6/urllib/request.py", line 570, in error
return self._call_chain(*args)
File "/usr/lib/python3.6/urllib/request.py", line 504, in _call_chain
result = func(*args)
File "/usr/lib/python3.6/urllib/request.py", line 650, in http_error_default
raise HTTPError(req.full_url, code, msg, hdrs, fp)
urllib.error.HTTPError: HTTP Error 400: Bad Request
解决方案
感谢 Tomalak 和 Amiy 的快速建议。我已经尝试过 python3 的 testrailAPI 库,它按预期工作。
推荐阅读
- python-3.x - 在 Trimesh geoview 中,颜色图和颜色条显示不正确
- xml - VTD-XML 不返回正确的值,如何修改查询以获得正确的结果?
- pdf - 如何通过单击 mpdf、php 中的按钮在新选项卡中打印多个 pdf
- javascript - at max right scroll >— 隐藏右侧部分而不是左侧部分
- sql-server-2008-r2 - 在 Windows 10 中安装 SQL Server 2008 R2 需要 .NET Framework 3.5 SP1
- android - 为什么我的模拟器不适用于 NativeScript?
- python-3.x - 'hr.payslip' 对象在评估'action = records.action_email_payslip_send()'时没有属性'action_email_payslip_send'"
- java - 如何在 AIX 中将 jar 文件作为服务运行,如果崩溃将自动重启?
- swagger - 如何在开放 api 规范中为字符串类型的属性指定空字符串值作为默认值
- java - 根据年份对值进行分组