当Asp.Net Core Post请求的Content-Length不匹配时,可能是由于请求体的大小与Content-Length标头的值不一致导致的。要解决这个问题,你可以尝试以下解决方法:
string requestBody = ""; // 你的请求体内容
byte[] requestBodyBytes = Encoding.UTF8.GetBytes(requestBody);
int contentLength = requestBodyBytes.Length;
// 设置Content-Length标头的值
request.ContentLength = contentLength;
HttpClient.DefaultRequestHeaders.TransferEncodingChunked = false;
来禁用分块传输编码。这可能会解决Content-Length不匹配的问题。HttpClient httpClient = new HttpClient();
httpClient.DefaultRequestHeaders.TransferEncodingChunked = false;
HttpResponseMessage response = await httpClient.PostAsync(url, content);
// 确保请求体的编码方式与Content-Type标头中指定的编码方式一致
string requestBody = ""; // 你的请求体内容
byte[] requestBodyBytes = Encoding.UTF8.GetBytes(requestBody);
HttpContent content = new ByteArrayContent(requestBodyBytes);
content.Headers.ContentType = new MediaTypeHeaderValue("application/json")
{
CharSet = "UTF-8"
};
通过检查以上几点,你应该能够解决Asp.Net Core Post请求的Content-Length不匹配的问题。