zoukankan      html  css  js  c++  java
  • 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异常");
                }
    
            }

  • 相关阅读:
    Hexo yilia 主题启用及相关设置
    Hexo Next 主题启用及相关设置
    值得一用的 Windows 软件清单
    ES6新特性2
    ES6新特性1
    手写promise第三天
    手写promise第一天
    Generator异步函数
    函子Functor
    柯里化函数组合的学习
  • 原文地址:https://www.cnblogs.com/personblog/p/12030987.html
Copyright © 2011-2022 走看看