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.