【问题标题】:get 415 Unsupported Media Type when testing my .Net Web API using postman使用邮递员测试我的 .Net Web API 时得到 415 Unsupported Media Type
【发布时间】:2020-02-23 09:49:15
【问题描述】:

以下代码是我在控制器中的UploadImagea 操作。

        [HttpPost]
        [ActionName("UploadImage")]
        [AllowAnonymous]
        [Route("[action]")]
        public async Task<string> UploadImage( IFormFile file, string folder, int SchoolId, byte EnvironmentType)
        {
            _galleryService.InvokeAzureSettings(SchoolId, EnvironmentType);
            try
            {
                var res = await ((GalleryService)_galleryService).UploadImage(folder, file);
                return res;
            }
            catch (Exception ex)
            {
                return ex.ToString();
            }
        }

以下截图来自我的邮递员,我正在测试的 Content-Type 是 multipart/form-data 。所有其他操作都工作正常。不知道为什么会出现 415 错误码,如何解决?

【问题讨论】:

    标签: c# asp.net-core postman


    【解决方案1】:

    创建一个模型来保存所需的表单数据

    public class Model {
        public IFormFile file { get; set; }
        public string folder { get; set; }
        public int SchoolId { get; set; }
        public byte EnvironmentType { get; set; }
    }
    

    使用适当的属性更新操作以期望来自表单的数据

    [HttpPost]
    [ActionName("UploadImage")]
    [AllowAnonymous]
    [Route("[action]")]
    public async Task<string> UploadImage([FromForm] Model model) {
    
        _galleryService.InvokeAzureSettings(model.SchoolId, model.EnvironmentType);
        try {
            var res = await ((GalleryService)_galleryService).UploadImage(model.folder, model.file);
            return res;
        } catch (Exception ex) {
            return ex.ToString();
        }
    }
    

    【讨论】:

      【解决方案2】:

      无需在正文中定义任何文件,只需检查客户端是否使用来自 IHttpContextAccessor 的 HttpRequest 发送正文中的文件。

       [HttpPost]
       public IActionResult UploadDocument()
          {
      
              var httpRequest = context.HttpContext.Request;
              List<IFormFile> lstFiles = new List<IFormFile>();
              foreach (var files in httpRequest.Form.Files)
              {
                  lstFiles.Add(files);
              }
              return Ok();
          }
      

      【讨论】:

        猜你喜欢
        • 2019-05-19
        • 1970-01-01
        • 2017-07-13
        • 1970-01-01
        • 1970-01-01
        • 2020-02-18
        • 2022-10-04
        • 1970-01-01
        • 2021-07-16
        相关资源
        最近更新 更多