Я получил очень простой httpClientHandler, который не возвращается из вызова base.SendAsync.
Я пытаюсь сделать так, чтобы захватить файл cookie аутентификации, чтобы я знал, когда обновлять аутентификацию CouchDB.
Нет исключений или чего-либо еще, чтобы указать, что является причиной проблемы.
Предложения?
Вот класс вызова:
public StdHttpClient(IConfiguration conf)
{
configuration = conf;
Client = new HttpClient(new AuthHandler());
}
public StdHttpClient()
{
Client = new HttpClient(new AuthHandler());
}
private async Task<Boolean> GetAuthenticationCookie(Credentials credentials)
{
var authReq = new { name = credentials.username, credentials.password };
var authReqString = JsonConvert.SerializeObject(authReq);
var request = new HttpRequestMessage(HttpMethod.Post, sessionUri);
request.Headers.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
request.Content = new StringContent(authReqString);
request.Content.Headers.ContentType = new
MediaTypeHeaderValue("application/json");
HttpResponseMessage authResult = await Client.SendAsync(request);
Console.WriteLine("GetAuth" + authResult.ToString()); //doesn't get here
return authResult.IsSuccessStatusCode;
}
Обработчик:
public class AuthHandler: DelegatingHandler
{
private readonly int _maximumAmountOfRetries = 3;
public AuthHandler() : base()
{
}
public AuthHandler(HttpMessageHandler innerHandler) : base(innerHandler)
{
}
protected override async Task<HttpResponseMessage> SendAsync(HttpRequestMessage request,
CancellationToken cancellationToken)
{
HttpResponseMessage response = null;
response = await base.SendAsync(request, cancellationToken);
Console.WriteLine("got response from sendasync"); //doesn't get here
Console.WriteLine(response);
return response;
}
}