authトークンをエンコードしてREST APIに渡そうとしていますが、これはpowershellでうまく動作しますが、Pythonスクリプトに同じメソッドを適用すると「許可されていない」例外がスローされます。Base64エンコーディングの問題 - Python vs Powershell
エンコードされた値に問題があると思われます。解決策を見つけることができません。何か案は ?
残りのエンドポイントはIBM uDeployです。
PowerShellの
$tokenEncoded = [System.Convert]::ToBase64String([System.Text.Encoding]::UTF8.GetBytes("PasswordIsAuthToken:{`"token`":`"$pass`"}"))
$basicAuthValue = "Basic $tokenEncoded"
$headers = @{}
$headers.Add("Authorization", $basicAuthValue)
$response = Invoke-RestMethod -Method Put -Headers $headers -Uri $requestUri -Body $jsonRequest
Pythonの
epass = base64.b64encode("PasswordIsAuthToken:{\"token\":\"$password\"}")
print 'base64 encoded: ' + epass
opener = urllib2.build_opener(urllib2.HTTPHandler)
req = urllib2.Request(reqUrl,json.dumps(json_data))
req.add_header('Authorization', 'Basic '+epass)
req.get_method = lambda: 'PUT'
resp = opener.open(req)