2016-08-10 4 views
1

Я пытаюсь сделать это с помощью PowerShell, но я получаю 400 ошибок:Невозможно обновить вопрос JIRA с REST API

$RESTURL = 'https://mycomp.atlassian.net/rest/api/latest/issue/PROJ-61' 
$body = '{"fields":{"assignee":{"name":"me"}}}' 
$restcreds = [System.Convert]::ToBase64String(
[System.Text.Encoding]::ASCII.GetBytes(('me' + ":" + 'mypass123')) 
) 
$httpheader = @{Authorization = "Basic $restcreds"} 
$restParameters = @{ 
Uri = $RESTURL; 
ContentType = "application/json"; 
Method = "PUT"; 
Headers = $httpheader; 
Body = $body; 
} 
Invoke-RestMethod @restParameters 

Если удалить «тело» из запроса и изменить его получить, чтобы я успешно возвращал данные. Кажется, я просто модифицирую билет

ответ

1

Если вы получили 400 (неверный запрос), значит, это значит, что в вашем теле запроса что-то не так.

Тело ответа будет содержать более подробное сообщение об ошибке и даст понять, что вы должны исправить.

Без сообщения об ошибке, я могу только догадаться: Я не уверен, что установка цессионария на «меня» работает, если только «я» действительно не является именем пользователя. Что произойдет, если вы попробуете с полным именем пользователя или используете «ключ» вместо «имя»?

Тот факт, что запрос GET отлично работает, показывает, что ваши учетные данные верны, поэтому это не проблема проверки подлинности.

+0

В моем теле запроса не было ничего плохого, проблема заключалась в том, что цессионария «я» не существовала (у меня была опечатка). И я нашел этот SO-вопрос, объясняющий, как заставить PS вывести тело запроса (каким образом я обнаружил ошибку). Http://stackoverflow.com/questions/18771424/how-to-get-powershell-invoke-restmethodto -Возвращение-тело-Http-500-кода-ответ – red888