我的编程空间,编程开发者的网络收藏夹
学习永远不晚

C#HttpClientPost参数同时上传文件的实现

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

C#HttpClientPost参数同时上传文件的实现

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();
    }                
 }

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

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

C#HttpClientPost参数同时上传文件的实现

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

SpringBoot文件上传同时接收复杂参数的过程详解

这篇文章主要介绍了SpringBoot文件上传同时,接收复杂参数,本文通过示例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
2022-12-19

C#实现不同窗体之间传递参数

这篇文章主要介绍了C#实现不同窗体之间传递参数问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
2023-02-26

C#怎么实现FTP上传文件

本文小编为大家详细介绍“C#怎么实现FTP上传文件”,内容详细,步骤清晰,细节处理妥当,希望这篇“C#怎么实现FTP上传文件”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。1.通过用FTP进行上传文件,首先要实现建
2023-06-30

asp.net core 多文件分块同时上传的组件

本文介绍了在ASP.NETCoreWeb开发中实现多文件分块同时上传的几种组件,包括ChunkedUploadMiddleware、ReactDropzone和Dropzone.js。这些组件允许将大文件分成较小的块,以便分块上传,从而提高速度并支持暂停和恢复功能。文章提供了使用这些组件的示例代码和详细介绍,并阐述了其优点,如同时上传多个文件、提升大型文件上传速度、支持进度跟踪等。
asp.net core 多文件分块同时上传的组件
2024-04-02

C#如何实现不同窗体之间传递参数

今天小编给大家分享一下C#如何实现不同窗体之间传递参数的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。C#不同窗体之间传递参数
2023-07-05

PHP 与 Ajax:实现实时的文件上传功能

如何使用 php 和 ajax 实现实时文件上传?在 php 中配置文件上传并设置权限。创建一个服务器端脚本处理上传。使用 jquery 编写一个客户端脚本来处理 ajax 请求。在 html 表单中添加文件输入框和提交按钮。使用 ajax
PHP 与 Ajax:实现实时的文件上传功能
2024-05-12

python文件间传递参数怎么实现

在Python中,可以使用命令行参数、环境变量、文件等方式在不同的Python文件之间传递参数。1. 命令行参数:可以使用`sys.argv`获取命令行参数。`sys.argv[0]`表示当前Python文件路径,`sys.argv[1:]
2023-09-27

微信小程序接口请求多文件+参数上传、单文件+参数上传(formData形式) 微信小程序实现formData格式传参(亲测有效)

01.引入所需formData js文件 1.文件链接 链接: https://pan.baidu.com/s/1BDxx0-1KMAnkceXb45L5rg 提取码: 6ibp 2.引入使用 const FormData = requir
2023-08-17

C#实现文件上传功能代码分享

本篇内容介绍了“C#实现文件上传功能代码分享”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!实现按日期命名C#文件上传代码如下:private
2023-06-18

vue如何实现实时上传文件进度条

这篇文章主要介绍了vue如何实现实时上传文件进度条,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。具体内容如下//上传文件组件
2023-06-29

利用PHP文件上传函数实现文件上传和处理功能的技巧

利用PHP文件上传函数实现文件上传和处理功能的技巧随着互联网的快速发展,文件上传和处理功能在网站开发中变得越来越重要。PHP作为一种常用的服务器端脚本语言,拥有丰富的文件处理函数,可以轻松实现文件上传和处理的功能。本文将为您介绍一些利用PH
利用PHP文件上传函数实现文件上传和处理功能的技巧
2023-11-20

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录