Welcome to the navigation

Eu veniam, ipsum cillum reprehenderit deserunt et ut laboris sunt quis enim tempor nisi sit consequat, officia mollit lorem sed voluptate ad incididunt elit, magna. Fugiat laboris amet, quis consectetur sint aliquip proident, reprehenderit nostrud cupidatat ipsum et culpa tempor id minim officia ea elit, voluptate velit esse dolore in

Yeah, this will be replaced... But please enjoy the search!

Resolving HttpContent ReadAsAsync<T> returning null in asp.net core

The HttpContent extension ReadAsAsync<T> is very practical since it will allow you to deserialize an incoming response to a typed object. When using the HttpClient in asp.net core the method will fail to perform the deserialization unless you set the mediaType in the accept headers, in example

client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json")); 

A complete example would look like this

using (HttpClient client = new HttpClient())
{
    var json = new StringContent(content: jsonString, encoding: Encoding.UTF32)
    {
        Headers =
        {
            // required for json apis
            ContentType = new MediaTypeHeaderValue(mediaType: "application/json")
        }
    };

    // required to use ReadAsAsync
    client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json")); 

    using (var res = await client.PostAsync(requestUri: $"{apiUrl}", content: json))
    {
        using(HttpContent content = res.Content)
        {
            var typedData = await content.ReadAsAsync();
        }
    }
}

Cheers