从核心Web API ASP.Net 下载大文件到WinForms时,n
长度的JSON值太大且不受支持。
在WinForms中:
Httpcontent httpdata = new StringContent(Jsoncpnvert.Serializeobject(inputmodel),encoding.utf8));
Httpclient client = new httpclient();
MultipartFormDataContent form = new MultipartFormDataContent();
form.add(httpdata,form);
try{
Var response = client.postasync(url,form). result;
Downloadmodel model = response.content.Readasasync<downloadmodel>(). result;
// Here 500 internal server error occurs
}
Server side :
[Httppost]
Public downloadreturnmodel download ()
{
Var httpdata = Request.form["data"];
// Do some process
Result is a downloadreturnmodel
Return result;
}
你应该返回一个文件:
[Route("api/[controller]")]
public class DownloadController : Controller
{
[HttpGet("{id}"]
public async Task<IActionResult> Download(string id)
{ // Do some process
return File(stream, "application/octet-stream"); // returns a FileStreamResult
}
}