public static async Task <TextHttpOperationResult <T> > TryReceiveAsObjectAsync <T>(this Task <HttpResponseMessage> requestTask, ISerializer <string>?serializer = null, bool textRequired = false) { var result = new TextHttpOperationResult <T>(); try { result.ResponseMessage = await requestTask.ConfigureAwait(false); if (!textRequired) { result.Data = await result.ResponseMessage.ReceiveAsObjectAsync <T>(serializer).ConfigureAwait(false); } else { var json = await result.ResponseMessage.Content.ReadAsStringAsync().ConfigureAwait(false); result.Text = json; if (!string.IsNullOrEmpty(json)) { result.Data = (serializer ?? HttpRequestGlobalOptions.DefaultJsonSerializer).Deserialize <T>(json); } } } catch (Exception ex) { result.Exception = ex; } return(result); }
protected void CheckHasCacheHeader(TextHttpOperationResult <WeatherForecast[]> httpResult) { var headerExist = httpResult.ResponseMessage.Headers.TryGetValues(HeaderKey, out var value); Assert.IsTrue(headerExist, $"{httpResult.ResponseMessage.RequestMessage.RequestUri} : [{httpResult.ResponseMessage.StatusCode}] - {httpResult.Text}"); Assert.AreEqual(HeaderValue, value.First()); }
public static async Task <TextHttpOperationResult <JsonDocument> > TryReceiveAsJsonDocumentAsync(this Task <HttpResponseMessage> requestTask, JsonDocumentOptions jsonDocumentOptions = default, bool textRequired = false) { var result = new TextHttpOperationResult <JsonDocument>(); try { result.ResponseMessage = await requestTask.ConfigureAwait(false); if (!textRequired) { result.Data = await result.ResponseMessage.ReceiveAsJsonDocumentAsync(jsonDocumentOptions).ConfigureAwait(false); } else { var json = await result.ResponseMessage.Content.ReadAsStringAsync().ConfigureAwait(false); result.Text = json; if (!string.IsNullOrEmpty(json)) { result.Data = JsonDocument.Parse(json, jsonDocumentOptions); } } } catch (Exception ex) { result.Exception = ex; } return(result); }
protected void CheckNoCacheHeader(TextHttpOperationResult <WeatherForecast[]> httpResult) { var headerExist = httpResult.ResponseMessage.Headers.TryGetValues(HeaderKey, out _); Assert.IsFalse(headerExist); }