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异常"); } }