Я пытаюсь использовать 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
.
Есть ли что-то, что я пропустил?