Я пытаюсь использовать HttpClient
для стороннего сервиса, который требует базовой HTTP-аутентификации. Я использую AuthenticationHeaderValue
. Вот что я пока придумал:
HttpRequestMessage request =
new HttpRequestMessage(
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();
}).Unwrap().Result;
Похоже, что действие POST работает нормально, но я не получаю обратно ожидаемых данных. Путем проб и ошибок и, в конечном итоге, с помощью Fiddler для прослушивания необработанного трафика я обнаружил, что заголовок авторизации не отправляется.
Я видел this, но мне кажется, что схема аутентификации указана как часть конструктора AuthenticationHeaderValue
.
Я что-то упустил?