私が気付いた奇妙な何か...Powershellで、次のことを試みた場合:
$uri = new-object System.Uri("http://builds.strongbadia.egg:8080/builds/package.tar.bz2")
$clnt = new-object System.Net.WebClient
$clnt.Credentials = new-object System.Net.NetworkCredential($username, $password)
$clnt.DownloadFile($uri, "package.tar.bz2")
「Authorization」ヘッダーは送信されません(Wiresharkで確認されます)。クレデンシャルキャッシュを使用し、特に基本認証を使用する必要があると述べている場合でも、次のようになります。
$cred = new-object System.Net.NetworkCredential($username, $password)
$credcache = new-object System.Net.CredentialCache
$credcache.Add($uri, "Basic", $cred)
$clnt.Credentials = $credcache
ヘッダーはまったく送信されません。代わりに、次のことを行う必要があります。
$auth = 'Basic ' + [System.Convert]::ToBase64String([System.Text.Encoding]::UTF8.GetBytes($username+":"+$password ))
$clnt.Headers.Add('Authorization', $auth)
そうして初めて、「Authorization」ヘッダーが送信されます。これは基本的に、PowerShellの喉に物をぶつけていたためです。
これが既知の欠陥なのか、それとも私が間違ったことなのか、何か考えはありますか?私はそれへの参照を見つけることができないようです。