Cannot get file sent from UWP app using Windows.Web.Http to WebAPI web service controller

左心房为你撑大大i 提交于 2019-12-02 09:10:17

As promised! what i used:

  • asp.net core
  • uwp

in the asp.net core i have a controller that looks like:

[Route("api/[controller]")]
    public class ValuesController : Controller
    {
        [HttpPost("Bytes")]
        public void Bytes([FromBody]byte[] value)
        {

        }

        [HttpPost("Form")]
        public Task<IActionResult> Form([FromForm]List<IFormFile> files)
        {
            // see https://docs.microsoft.com/en-us/aspnet/core/mvc/models/file-uploads
            return Task.FromResult<IActionResult>(Ok());
        }
    }

in UWP use this to send the image:

var file = await StorageFile.GetFileFromApplicationUriAsync(new Uri("ms-appx:///Assets/LockScreenLogo.png"));

        try
        {
            var http = new HttpClient();

            var formContent = new HttpMultipartFormDataContent();

            var fileContent = new HttpStreamContent(await file.OpenReadAsync());
            fileContent.Headers.ContentType = new Windows.Web.Http.Headers.HttpMediaTypeHeaderValue("image/png");
            formContent.Add(fileContent, "files", "lockscreenlogo.png");

            var response = await http.PostAsync(new Uri("http://localhost:15924/api/values/Form"), formContent);
           response.EnsureSuccessStatusCode();
        }
        catch(Exception ex)
        {

        }

the formContent.Add(fileContent, "files", "lockscreenlogo.png"); is important. Use this specific override

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!