我们已经准备好了,你呢?

我们与您携手共赢,为您的企业形象保驾护航!

目录
  • HttpClient Post参数同时上传文件
    • Demo 如下
  • HttpClient上传文件到服务器(multipart/form-data)

    HttpClient Post参数同时上传文件

    Demo 如下

    using (var client = new HttpClient()){    using (var multipartFormDataContent = new MultipartFormDataContent())    {        var values = new[]        {            new KeyValuePair<string, string>("c", "3"),            new KeyValuePair<string, string>("c", "2"),            new KeyValuePair<string, string>("d", "2")             //other values        };         foreach (var keyValuePair in values)        {            multipartFormDataContent.Add(new StringContent(keyValuePair.Value),                String.Format("\"{0}\"", keyValuePair.Key));        }         multipartFormDataContent.Add(new ByteArrayContent(System.IO.File.ReadAllBytes(@"D:\test.jpg")),            "\"pic\"",            "\"test.jpg\"");         var requestUri = "http://localhost:8080";        var html = client.PostAsync(requestUri, multipartFormDataContent).Result.Content.ReadAsStringAsync().Result;    }}

    HttpClient上传文件到服务器(multipart/form-data)

    string reqUrl = JsonrpcHttpClient.MakeRpcUrl(typeof(Wfm_SimReport).Name, "save");using (HttpClient client = new HttpClient(new HttpClientHandler() { UseCookies = false }))//若想手动设置Cookie则必须设置UseCookies = false{                                   string boundary = string.Format("----WebKitFormBoundary{0}",DateTime.Now.Ticks.ToString("x"));    MultipartFormDataContent content = new MultipartFormDataContent(boundary);     #region 设置请求参数    content.Headers.ContentType = MediaTypeHeaderValue.Parse("multipart/form-data");    content.Headers.Add("Cookie", TokenManager.Token);    content.Headers.Add("client", "true");     #endregion    if (string.IsNullOrEmpty(fullPath) && !File.Exists(fullPath))    {        return false;    }     string fileName = Path.GetFileName(fullPath);     #region Stream请求    FileStream fStream = File.Open(fullPath, FileMode.Open, FileAccess.Read);    content.Add(new StreamContent(fStream, (int)fStream.Length), "file", fileName);                    #endregion    content.Add(new StringContent(JsonHelper.Serialize(entity)), "dtoStr");    var result = client.PostAsync(reqUrl, content).Result;     try    {        if (result.IsSuccessStatusCode)        {            string rslt = result.Content.ReadAsStringAsync().Result;            Debug.WriteLine(rslt);            return true;        }    }    catch (Exception ex)    {        Debug.WriteLine(string.Format("获取服务器返回结果错误:消息:{0},堆栈:{1}",ex.Message,ex.StackTrace));    }    finally    {        //关闭文件流        fStream.Close();        client.Dispose();    }                 }

    以上为个人经验,希望能给大家一个参考,也希望大家多多支持本站。

    免责声明:本站内容(文字信息+图片素材)来源于互联网公开数据整理或转载,仅用于学习参考,如有侵权问题,请及时联系本站删除,我们将在5个工作日内处理。联系邮箱:chuangshanghai#qq.com(把#换成@)

    我们已经准备好了,你呢?

    我们与您携手共赢,为您的企业形象保驾护航!

    在线客服
    联系方式

    热线电话

    132-7207-3477

    上班时间

    周一到周五

    二维码
    线