Ниже приведен код, который выполняет аутентификацию, генерирует заголовок авторизации и вызывает API.
К сожалению, после GET
запроса к API я получаю 401 Unauthorized
ошибку.
Однако, когда я захватываю трафик в Fiddler и воспроизводю его, вызов API выполняется успешно, и я вижу желаемый 200 OK
код состояния.
[Test]
public void RedirectTest()
{
HttpResponseMessage response;
var client = new HttpClient();
using (var authString = new StringContent(@"{username: ""theUser"", password: ""password""}", Encoding.UTF8, "application/json"))
{
response = client.PostAsync("http://host/api/authenticate", authString).Result;
}
string result = response.Content.ReadAsStringAsync().Result;
var authorization = JsonConvert.DeserializeObject<CustomAutorization>(result);
client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue(authorization.Scheme, authorization.Token);
client.DefaultRequestHeaders.Add("Accept", "application/vnd.host+json;version=1");
response =
client.GetAsync("http://host/api/getSomething").Result;
Assert.True(response.StatusCode == HttpStatusCode.OK);
}
Когда я запускаю этот код, заголовок авторизации теряется.
Однако в Fiddler этот заголовок передается успешно.
Есть идеи, что я делаю не так?