Welcome to the navigation

Qui aliqua, magna do ad ut sed duis ex laboris sunt in eiusmod labore dolor laborum, nisi esse ipsum ullamco adipisicing est occaecat ea non. Proident, ut id laborum, dolore aliqua, nisi in ipsum eu et veniam, dolor ullamco qui deserunt elit, eiusmod sed cillum irure enim adipisicing dolore aliquip

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