我的应用程序是ASP.NET Core 1.0 Web API。
如果我的Controller返回一个小JSON,一切正常。 但是,如果JSON变大,我就会得到error
Visual Studio正在给我这个error
这是控制器和创建数据(缩短)的方法
[HttpGet]
public async Task<IActionResult> GetUserData()
{
return this.Ok(GetSomeData());
}
private List<MyUser> GetSomeData()
{
var userList = new List<MyUser>();
for (int i = 0; i < 2500; i++)
{
userList.Add(new MyUser{
Name = "Data",
Age = i,
Phone = "000",
});
}
return userList;
}
如果循环变大,我会得到上面列出的错误。
请记住,代码非常简单。但一切正常,直到返回大量数据。
我尝试更改maxJsonLength
中的web.config
,如here所述。
答案 0 :(得分:0)
我的问题是我有一个中间件会过早抛出异常并关闭响应
答案 1 :(得分:-1)
请参阅使用web api和json,您可以传输的数据量有限制。但一种古怪的方式可能是返回序列化为json的文本/纯文本数据。
因此,如果您更改了GetUserData()
操作:
[HttpGet]
public async Task<HttpResponseMessage> GetUserData()
{
var result = GetSomeData();
var response = Request.CreateResponse();
response.Content = new StringContent(JsonConvert.SerializeObject(result));
return response;
}
然后在您的客户端中,您可以使用JsonConvert.DeserializeObject
方法构建对象。