从xamarin将图像上传到asp.net核心api时获得400条响应,形成了UWP应用

问题描述

我在MainPage.cs中有以下代码

 private async void UploadFile_Clicked(object sender,EventArgs e)
        {
            try
            {
                var url = "http://localhost:53416/api/upload";

                var content = new MultipartFormDataContent();

                content.Add(new StreamContent(_mediaFile.GetStream()),"\"file\"",$"\"{_mediaFile.Path}\"");

                var httpClient = new HttpClient();
                var httpResponseMessage = await httpClient.PostAsync(url,content);
            }
            catch (Exception ex)
            {
            }
        }

,这在我的Asp.net核心控制器UploadController.cs中

 [Route("api/Upload")]
        [HttpPost]
        public async Task<IActionResult> Post([FromForm(Name = "file")] IFormFile file)
        {
            try
            {
                var uploads = Path.Combine(webHostEnvironment.WebrootPath,"Uploads");
                if (file.Length > 0)
                {
                    using (var fileStream = new FileStream(Path.Combine(uploads,file.FileName),FileMode.Create))
                    {
                        await file.copyToAsync(fileStream);
                    }
                }
                return Ok();
            }
            catch (Exception ex)
            {
                return StatusCode(500,$"Internal server error: {ex}");
            }
        }

从UWP应用执行呼叫时,我收到400错误的请求,并且该方法未触发, 而在使用邮递员在表格数据中包含图像的邮递员打相同的网址时,效果很好。

enter image description here

目标框架是.net核心3.1

还有一件事情是,从Post方法删除参数“ [FromForm(Name =“ file”)] IFormFile file“),使其看起来像

 public async Task<IActionResult> Post() 

方法调用

我做错什么了吗 任何人都知道!

解决方法

检查图像的大小,Asp.Net核心具有默认的30MB请求大小限制,您可以根据需要增加该限制:https://khalidabuhakmeh.com/increase-file-upload-limit-for-aspdotnet