C# HttpClient以multipart/form-data形式 提交文件和其它参数


  调用文件接口,需要一个上传文件和一个Region参数,参考调用实例

 public async Task<WebApiResult> UploadFile(UploadFileModel info, IList<IFormFile> files)
        {
            try
            {
                var postContent = new MultipartFormDataContent();
                string boundary = string.Format("--{0}", DateTime.Now.Ticks.ToString("x"));
                postContent.Headers.Add("ContentType", $"multipart/form-data, boundary={boundary}");
                var requestUri = "/api/File/UploadFiles";
                if (files.Any())
                {
                    var stream = files[0].OpenReadStream();
                    //files为文件key, files[0].FileName 为文件名称
                    postContent.Add(new StreamContent(stream, (int)stream.Length), "files", files[0].FileName);
                    //Region为请求文件接口需要的参数,根据调用接口参数而定
                    postContent.Add(new StringContent(info.Region), "Region");

                }
                var response = await _httpclient.PostAsync(requestUri, postContent);
                if (response.IsSuccessStatusCode)
                {
                    var responseStr = await response.Content.ReadAsStringAsync();
                    var responseObj = JsonConvert.DeserializeObject<WebApiResult>(responseStr);
                    return responseObj;
                }
                //WebApiResult为自定义反会值
                return new WebApiResult(ApiResultCode.Fail, "保存失败");
            }
            catch (Exception ex)
            {
                throw new Exception("保存file异常");
            }

        }


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM