public async Task <QueryResult> FetchAsync( HttpQueryRequest request, HttpClient httpClient, IEnumerable <IHttpQueryRequestInterceptor> interceptors) { (string json, HttpResponseMessage message)result = await FetchStringAsync(request, httpClient) .ConfigureAwait(false); QueryResult queryResult = HttpResponseDeserializer.Deserialize( JsonConvert.DeserializeObject <JObject>( result.json, _jsonSettings)); if (interceptors != null) { foreach (IHttpQueryRequestInterceptor interceptor in interceptors) { await interceptor.OnResponseReceivedAsync( request, result.message, queryResult) .ConfigureAwait(false); } } return(queryResult); }
public async Task <QueryResult> FetchAsync( HttpQueryRequest request, HttpClient httpClient) { string result = await FetchStringAsync(request, httpClient) .ConfigureAwait(false); return(HttpResponseDeserializer.Deserialize( JsonConvert.DeserializeObject <JObject>(result, _jsonSettings))); }
private async Task <string> FetchStringInternalAsync( HttpQueryRequest request, HttpClient httpClient) { var content = new StringContent( SerializeRemoteRequest(request), Encoding.UTF8, _json); HttpResponseMessage response = await httpClient.PostAsync(default(Uri), content) .ConfigureAwait(false); return(await response.Content.ReadAsStringAsync() .ConfigureAwait(false)); }
public Task <string> FetchStringAsync( HttpQueryRequest request, HttpClient httpClient) { if (request == null) { throw new ArgumentNullException(nameof(request)); } if (httpClient == null) { throw new ArgumentNullException(nameof(httpClient)); } return(FetchStringInternalAsync(request, httpClient)); }
private async Task <HttpResponseMessage> FetchInternalAsync( HttpQueryRequest request, HttpClient httpClient) { var content = new StringContent( SerializeRemoteRequest(request), Encoding.UTF8, _json); HttpResponseMessage response = await httpClient.PostAsync(default(Uri), content) .ConfigureAwait(false); response.EnsureSuccessStatusCode(); return(response); }
public async Task <QueryResult> FetchAsync( HttpQueryRequest request, HttpClient httpClient, IEnumerable <IHttpQueryRequestInterceptor> interceptors, CancellationToken cancellationToken) { HttpResponseMessage message = await FetchInternalAsync(request, httpClient) .ConfigureAwait(false); using (Stream stream = await message.Content.ReadAsStreamAsync() .ConfigureAwait(false)) { object response = await BufferHelper.ReadAsync( stream, (buffer, bytesBuffered) => ParseJson(buffer, bytesBuffered), cancellationToken) .ConfigureAwait(false); QueryResult queryResult = response is IReadOnlyDictionary <string, object> d ? HttpResponseDeserializer.Deserialize(d) : QueryResult.CreateError( ErrorBuilder.New() .SetMessage( "Could not deserialize query response.") .Build()); if (interceptors != null) { foreach (IHttpQueryRequestInterceptor interceptor in interceptors) { await interceptor.OnResponseReceivedAsync( request, message, queryResult) .ConfigureAwait(false); } } return(queryResult); } }
private async Task <(string, HttpResponseMessage)> FetchStringInternalAsync( HttpQueryRequest request, HttpClient httpClient) { var content = new StringContent( SerializeRemoteRequest(request), Encoding.UTF8, _json); HttpResponseMessage response = await httpClient.PostAsync(httpClient.BaseAddress, content) .ConfigureAwait(false); response.EnsureSuccessStatusCode(); string json = await response.Content.ReadAsStringAsync() .ConfigureAwait(false); return(json, response); }
private string SerializeRemoteRequest( HttpQueryRequest remoteRequest) { return(JsonConvert.SerializeObject( remoteRequest, _jsonSettings)); }