HttpClient
基本的な HTTP 認証を必要とするサードパーティ サービスにを使用しようとしています。を使用していAuthenticationHeaderValue
ます。これが私がこれまでに思いついたものです:
HttpRequestMessage<RequestType> request =
new HttpRequestMessage<RequestType>(
new RequestType("third-party-vendor-action"),
MediaTypeHeaderValue.Parse("application/xml"));
request.Headers.Authorization = new AuthenticationHeaderValue(
"Basic", Convert.ToBase64String(System.Text.ASCIIEncoding.ASCII.GetBytes(
string.Format("{0}:{1}", "username", "password"))));
var task = client.PostAsync(Uri, request.Content);
ResponseType response = task.ContinueWith(
t =>
{
return t.Result.Content.ReadAsAsync<ResponseType>();
}).Unwrap().Result;
POST アクションは正常に動作しているように見えますが、期待するデータが返されません。試行錯誤を繰り返し、最終的に Fiddler を使用して生のトラフィックを盗聴した結果、認証ヘッダーが送信されていないことがわかりました。
これを見たことがありますが、AuthenticationHeaderValue
コンストラクターの一部として指定された認証スキームを持っていると思います。
見逃したものはありますか?