0

如果在 Xray 中发布执行证据并将 test.log 文件附加到证据字段,则以下 curl 命令有效:

curl -H "Content-Type: application/json" -X POST -u user:pwd --data @test.json https://jira.opentv.com/rest/raven/1.0/api/testrun/{id}/attachment

test.json 在哪里有这个,

{
"data":"VGhpcyBmaWxlIGlzIHRlc3RpbmcgZm9yIHVwbG9hZCB0byBleGVjdXRpb24gZGV0YWlscy4=",
"filename":"test.log",
"contentType":"application/json"
} 

(在 json 'data' 中是 base64 编码的,仅在 xray 中支持)

但是当我尝试使用下面的 requests.post 时,它失败了。

requests.post('https://jira.opentv.com/rest/raven/1.0/api/testrun/{id}/attachment',headers = {'Content-Type':'application/json'},data={"data":"VGhpcyBmaWxlIGlzIHRlc3RpbmcgZm9yIHVwbG9hZCB0byBleGVjdXRpb24gZGV0YWlscy4=","fileName":"test.log","Content-Type":"application/json"},auth=('user', 'pwd'))

提前致谢..

curl cmd 从 linux 机器执行,python requests.post 从 windows 执行。两者都可以通过 X 射线访问。

4

1 回答 1

0

您需要使用命名的“json”参数而不是“data”。您在有效载荷的 contentType 中也有错字。

正确的代码类似于:

import requests    
requests.post('https://sandbox.xpand-it.com/rest/raven/1.0/api/testrun/4448/attachment',headers = {'Content-Type':'application/json'}, json={"data":"VGhpcyBmaWxlIGlzIHRlc3RpbmcgZm9yIHVwbG9hZCB0byBleGVjdXRpb24gZGV0YWlscy4=", "filename":"test.log", "contentType":"application/json"},auth=('user', 'pass'))
于 2020-08-11T10:50:48.413 回答