public async Task The_401_response_that_causes_token_refresh_and_retry_should_be_disposed_to_unblock_socket() { var document = File.ReadAllText(FileName.Create("success_token_response.json")); var handler = new NetworkHandler(document, HttpStatusCode.OK); using (var tokenClient = new TokenClient( "http://server/token", "client", handler)) { var indirectOutputOfHttpResponses = new StubHttpResponsesHandler(); var accessTokenHandler = new AccessTokenDelegatingHandler( tokenClient, "scope", innerHandler: indirectOutputOfHttpResponses); var apiClient = new HttpClient(accessTokenHandler); await apiClient.GetStringAsync("http://someapi/somecall"); indirectOutputOfHttpResponses.FirstAttempt401Response .Disposed .Should() .BeTrue("Unauthorized response should be disposed to avoid socket blocking"); } }
public Connection(string clientId, string clientSecret) { _tokenClient = new TokenClient(TokenEndpointUrl, clientId, clientSecret) { BasicAuthenticationHeaderStyle = BasicAuthenticationHeaderStyle.Rfc6749 }; var accessTokenDelegatingHandler = new AccessTokenDelegatingHandler( _tokenClient, scope: null, innerHandler: new HttpClientHandler()); _httpClient = new HttpClient(accessTokenDelegatingHandler) { BaseAddress = new Uri(ApiBaseUrl) }; }