2016-10-24 1 views
0

私は、ローカルサーバー上のSonarqubeのWeb APIにアクセスしようとしています。 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"} 

私はcurlコマンドを実行しました。同じユーザーID、同じパスワード、同じURI、同じメソッド。

誰も助言できますか?

マイcurlコマンドは次のとおりです。

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

それをしました。ありがとう。 –