How to disable Chunked Transfer Encoding in ASP.Net C# using HttpClient How to disable Chunked Transfer Encoding in ASP.Net C# using HttpClient asp.net asp.net

How to disable Chunked Transfer Encoding in ASP.Net C# using HttpClient


It looks like you need to set the Content-Length header too, if you don't it seems to use the MaxRequestContentBufferSize on HttpClientHandler to chunk the data when sending it.

Try using a StringContent, ByteArrayContent or StreamContent (If the steam is seekable) as these will be able to calculate the length for you.

var content = new StringContent(json);HttpResponseMessage response = await client.PostAsync(content);

The PostAsJsonAsync extension methods create ObjectContent under the hood which doesn't calculate the Content-Length and return false:

public class ObjectContent : HttpContent{    /* snip */    protected override bool TryComputeLength(out long length)    {        length = -1L;        return false;    }}

Thus will always fall back to chunking to the buffer size.