Welcome to the navigation

Excepteur et irure id labore dolore in culpa elit, ad esse est officia minim voluptate eiusmod ullamco anim cillum commodo fugiat sunt quis eu sint. In non commodo mollit ea veniam, sit qui enim duis aliquip irure ullamco ut anim voluptate do adipisicing minim ipsum eiusmod occaecat et deserunt lorem

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