【发布时间】:2019-09-30 09:05:43
【问题描述】:
我正在尝试使用脚本向 Jira 发送一个 POST 请求,它在 Python 上运行良好,但在 PowerShell 上却不行。
我尝试 GET 请求以使用 PowerShell 从 Jira 获取一些数据并且它有效,所以我猜登录详细信息是正确的。所以我唯一关心的是有效载荷。也许我的 JSON 格式不正确。
Python(工作):
headers = {
"Accept": "application/json;charset=utf-8",
"Content-Type": "application/json"
}
payload = {
"fields": {
"project": {
"key": "SDF"
},
"summary": "test",
"description": "Creating of an issue using project keys and issue type names using the REST API",
"issuetype": {
"name": "Request"
}
}
}
password = open('passwords_jira2snow.txt').readlines()
jira_login = HTTPBasicAuth(password[0].rstrip('\n'), password[1].rstrip('\n'))
r = requests.post(url="domain/rest/api/2/issue", data = json.dumps(payload), auth=jira_login, verify=False, headers=headers)
#jira_response = json.loads(r.text)
print(r.text)
PowerShell(不起作用):
$payload = ('{
"fields": {
"project": {
"key": "SDF"
},
"summary": "test",
"description": "Creating of an issue using project keys and issue type names using the REST API",
"issuetype": {
"name": "Request"
}
}
}')
$hdrs1 = @{}
$hdrs1.Add("login",$login)
$hdrs1.Add("password",$password)
$CreateJira = Invoke-RestMethod -Method POST -Headers $hdrs1 -Uri "domain/rest/api/2/issue" -Body $payload -ContentType "application/json"
Write-Host $CreateJira
我来了
错误:对 sessionauth 端点的 REST 调用失败,出现错误“ProtocolError - System.Net.WebException:远程服务器返回错误:(400)错误请求。 在 Microsoft.PowerShell.Commands.WebRequestPSCmdlet.GetResponse(WebRequest 请求) 在 Microsoft.PowerShell.Commands.WebRequestPSCmdlet.ProcessRecord()' 当前端点:'https://domain/sessionauth/v1/authenticate'【问题讨论】:
-
我相信第一个标题被称为
username而不是login -
凭证不是问题。 GET 请求就像我提到的那样工作
-
$payload应该是哈希表,而不是 JSON 字符串。 -
@AnsgarWiechers 你介意举个例子吗?不太熟悉哈希表
-
发帖了,谢谢大家
标签: json powershell jira jira-rest-api