我正在使用 .NET 6 并通过 Swagger 或 Postman 发布到此方法:
[HttpPost]
[Route("Test")]
public async Task<IActionResult> Test([FromBody] OrderData data)
{
return Ok();
}
public class OrderData
{
public string DocumentData { get; set; }
}
将 JSON 发布到此端点,其中的 base64 很大,导致底部被截断。
数据大小超过10mb。
我尝试将其更改为字符串和动态类型,而不是具有相同结果的对象。
看起来您可以在此处尝试或组合多种方法。 从.NET方面来看: 您可以用以下方式装饰该方法:
[RequestSizeLimit(104857600)] // 100MB for example
虽然默认大小约为 30mb,但请检查参考。
另外,我建议使用流读取器作为另一个选项,而不是全部反序列化,例如:
public async Task<IActionResult> Test()
{
using (var reader = new StreamReader(Request.Body))
{
var body = await reader.ReadToEndAsync();
// You can then process the body data here.
return Ok();
}
}
如果这不起作用,问题可能出在您正在使用的工具上,在本例中是 Postman,有时它可能会超时或在负载较大时表现奇怪。
您可以尝试修改请求超时,进入设置 > 常规 > 请求超时(以毫秒为单位),或者您可以访问此页面以获得更好的指南:如何在 postman 中设置请求超时。
我希望这有帮助。