public DefaultHttpRequestBuilder( IHttpContentGenerator contentGenerator, ILogger <DefaultHttpRequestBuilder> logger) { _contentGenerator = contentGenerator; _logger = logger; }
/// <summary> /// Faz uma requisição do tipo POST, serializando o request informado e deserializando a resposta em um Result. /// </summary> /// <typeparam name="TResponse"></typeparam> /// <param name="httpClient"></param> /// <param name="requestUri">URI para realização da chamada HTTP. A URL chamada no HTTP será composta pela URI Base + esta URI.</param> /// <param name="bodyObject">Objeto que será serializado para envio no body da requisição.</param> /// <param name="httpContentGenerator">O tipo de gerador do conteúdo Http. Exemplo: json, xml, etc.</param> /// <param name="headers"></param> /// <returns></returns> public static async Task <Result <TResponse> > PostResultAsync <TResponse>(this HttpClient httpClient, string requestUri, object bodyObject, IHttpContentGenerator httpContentGenerator, Dictionary <string, string> headers = null) where TResponse : class, new() { HttpContent content = httpContentGenerator.GenerateContent(bodyObject); return(await SendHttpRequestAsync <TResponse>(httpClient, HttpVerb.Post, requestUri, content, headers)); }