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>