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>