https://www.jb51.net/article/193612.htm
C# 使用multipart form-data方式post数据到服务器
使用multipart/form-data方式提交数据与普通的post方式有一定区别。multipart/form-data的请求头必须包含一个特殊的头信息:Content-Type,其值必须为multipart/form-data。另外还需要规定一个内容分割符用于分割请求体中的多个post的内容,如文件内容和文本内容,只有这样服务端才能正常解析数据。但是,multipart/form-data的基础还是post,它是由post方法来实现的。下面分别给出两种方法提交multipart/form-data数据。
1、使用form表单提交数据
1 2 3 4 5 6 | < form action = "xx.php" method = "post" enctype = "multipart/form-data" > < input type = "text" name = "uname" class = "uname" />< br /> < input type = "text" name = "email" class = "email" />< br /> < input type = "file" name = "file" class = "file" />< br /> < input type = "submit" name = "submit" value = "提交" /> </ form > |
form表单提交数据的两种方式。
(1)application/x-www-form-urlencoded 不能用于上传文件,只能提交文本,当然如果有file控件的话也只能提交文件名。
(2)multipart/form-data 用于上传文件。
2、使用HttpClient和MultipartFormDataContent
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | using (var client = new HttpClient()) using (var content = new MultipartFormDataContent()) { var fileContent1 = new ByteArrayContent(File.ReadAllBytes( @"D:\xx.jpg" )); fileContent1.Headers.ContentDisposition = new ContentDispositionHeaderValue( "file" ) { FileName = "xx.jpg" }; var dataContent = new ByteArrayContent(Encoding.UTF8.GetBytes( "1" )); dataContent.Headers.ContentDisposition = new ContentDispositionHeaderValue( "form" ) { Name = "type" }; content.Add(fileContent1); content.Add(dataContent); var result = client.PostAsync( "api/Upload" , content).Result; } |
到此这篇关于C# 使用multipart form-data方式post数据到服务器的文章就介绍到这了,更多相关multipart form-data post 内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
<div class="art_xg">
<b>您可能感兴趣的文章:</b><ul><li><a href="/article/191323.htm" title="C#获取本地IP的四种方式示例详解" target="_blank">C#获取本地IP的四种方式示例详解</a></li><li><a href="/article/190663.htm" title="C#监测IPv4v6网速及流量的实例代码" target="_blank">C#监测IPv4v6网速及流量的实例代码</a></li><li><a href="/article/178579.htm" title="c#获取客户端IP地址(考虑代理)" target="_blank">c#获取客户端IP地址(考虑代理)</a></li><li><a href="/article/154439.htm" title="C#应用ToolStrip控件使用方法" target="_blank">C#应用ToolStrip控件使用方法</a></li><li><a href="/article/149100.htm" title="C#使用GZipStream实现文件的压缩与解压" target="_blank">C#使用GZipStream实现文件的压缩与解压</a></li><li><a href="/article/148198.htm" title="C# 使用SharpZipLib生成压缩包的实例代码" target="_blank">C# 使用SharpZipLib生成压缩包的实例代码</a></li><li><a href="/article/139717.htm" title="C#自定义IP输入框控件" target="_blank">C#自定义IP输入框控件</a></li><li><a href="/article/136873.htm" title="c# 文件压缩zip或将zip文件解压的方法" target="_blank">c# 文件压缩zip或将zip文件解压的方法</a></li><li><a href="/article/122230.htm" title="C#多线程爬虫抓取免费代理IP的示例代码" target="_blank">C#多线程爬虫抓取免费代理IP的示例代码</a></li><li><a href="/article/122143.htm" title="C# JavaScriptSerializer序列化时的时间处理详解" target="_blank">C# JavaScriptSerializer序列化时的时间处理详解</a></li><li><a href="/article/118249.htm" title="使用C# 的webBrowser写模拟器时的javascript脚本调用问题" target="_blank">使用C# 的webBrowser写模拟器时的javascript脚本调用问题</a></li><li><a href="/article/115971.htm" title="C#实现文件压缩与解压的方法示例【ZIP格式】" target="_blank">C#实现文件压缩与解压的方法示例【ZIP格式】</a></li><li><a href="/article/202400.htm" title="c# 获得本地ip地址的三种方法" target="_blank">c# 获得本地ip地址的三种方法</a></li></ul>
</div>
</div>
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· .NET10 - 预览版1新功能体验(一)