2016-10-24 5 views
0

Я пытаюсь получить доступ к веб-api для Sonarqube на нашем локальном сервере. Примеры в документации Sonarqube все завитуют, и я пытаюсь перевести их в PowerShell, либо Invoke-WebRequest, либо Invoke-RestMethod. У меня проблемы с учетными данными. Я продолжаю получать ошибку 401 Not Authorized. Я просмотрел все сообщения, которые я могу найти при этом, и я не вижу исчерпывающего полного ответа о том, как это сделать.Invoke-RestMethod или Invoke-WebRequest версия завитка?

Вот что я бегу в настоящее время:

$user='myUserid' 
$password='myPassword' 
$secpasswd = ConvertTo-SecureString $password -AsPlainText -Force 
$cred = New-Object System.Management.Automation.PSCredential ($user, $secpasswd) 
$uri="http://myServer.ad1.prod:9000/api/properties" 
Invoke-RestMethod -Uri $uri -Credential $cred -Method Get 

И ответ:

Invoke-RestMethod : {"err_code":401,"err_msg":"Unauthorized"} 

Я запустить завиток команду, как это определено в оригинальной документации продукта, и она работает. Тот же идентификатор пользователя, тот же пароль, тот же URI, тот же метод.

Может ли кто-нибудь посоветовать?

Моя локон команда:

curl -u myID:myPassword X GET http://myServer.ad.prod:9000/api/properties 
+0

Как вы передавая полномочия с 'curl'? –

+0

@AnsgarWiechers - см. Отредактированный пост –

ответ

2

Я думаю, вам нужно пройти в верительных вроде этого:

$username = "user" 
$password = "password" 
$authInfo = ("{0}:{1}" -f $username,$password) 
$authInfo = [System.Text.Encoding]::UTF8.GetBytes($authInfo) 
$authInfo = [System.Convert]::ToBase64String($authInfo) 
$headers = @{Authorization=("Basic {0}" -f $authInfo)} 

Invoke-RestMethod -Method Head -Uri "https://pathtowhatever" -ContentType 'text/json' -Headers $headers 
+0

Это сделало. Благодарю. –