欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

C#中在WebClient中使用post發(fā)送數(shù)據(jù)實(shí)現(xiàn)方法

 更新時(shí)間:2014年08月06日 10:41:06   投稿:shichen2014  
這篇文章主要介紹了C#中在WebClient中使用post發(fā)送數(shù)據(jù)實(shí)現(xiàn)方法,需要的朋友可以參考下

很多時(shí)候,我們需要使用C#中的WebClient 來收發(fā)數(shù)據(jù),WebClient 類提供向 URI 標(biāo)識(shí)的任何本地、Intranet 或 Internet 資源發(fā)送數(shù)據(jù)以及從這些資源接收數(shù)據(jù)的公共方法。本文就較為詳細(xì)的說明了WebClient中使用post發(fā)送數(shù)據(jù)實(shí)現(xiàn)方法。

下面先說說WebClient 最主要的功能。

WebClient 構(gòu)造函數(shù)

.Ctor 包括 一個(gè)空構(gòu)造函數(shù) 和一個(gè)靜態(tài)構(gòu)造函數(shù), 靜態(tài)構(gòu)造函數(shù)主要為UrlEncode 和UrlEncodeAndWirte 編碼提供參照byte[]數(shù)據(jù)的初始化作用。如下所示:

stati WebClient()

public WebClient() 

WebClient提供四種將數(shù)據(jù)上載到資源的方法:

OpenWrite 返回一個(gè)用于將數(shù)據(jù)發(fā)送到資源的 Stream。
UploadData 將字節(jié)數(shù)組發(fā)送到資源并返回包含任何響應(yīng)的字節(jié)數(shù)組。
UploadFile 將本地文件發(fā)送到資源并返回包含任何響應(yīng)的字節(jié)數(shù)組。
UploadValues 將NameValueCollection 發(fā)送到資源并返回包含任何響應(yīng)的字節(jié)數(shù)組。

WebClient還提供三種從資源下載數(shù)據(jù)的方法:

DownloadData 從資源下載數(shù)據(jù)并返回字節(jié)數(shù)組。
DownloadFile 從資源將數(shù)據(jù)下載到本地文件。
OpenRead 從資源以 Stream 的形式返回?cái)?shù)據(jù)。

了解了WebClient的知識(shí)后,我們開始正式進(jìn)入正題。
通過Post方式發(fā)送數(shù)據(jù)可以避免Get方式的數(shù)據(jù)長(zhǎng)度限制,下面采用WebClient來實(shí)現(xiàn)這個(gè)功能。Web服務(wù)端可以是任何CGI但是要搞清楚Web端接受的編碼,代碼如下:

WebClient wc = new WebClient();
StringBuilder postData = new StringBuilder();
postData.Append("formField1=" + "表單數(shù)據(jù)一");
postData.Append("&formField2=" + "表單數(shù)據(jù)二");
postData.Append("&formField3=" + "表單數(shù)據(jù)三");
//下面是GB2312編碼
byte[] sendData = Encoding.GetEncoding("GB2312").GetBytes(postData.ToString());
wc.Headers.Add("Content-Type", "application/x-www-form-urlencoded");
wc.Headers.Add("ContentLength", sendData.Length.ToString());
byte[] recData= wc.UploadData("http://www.domain.cn/services/DataImport1.asp","POST",sendData);
//顯示返回值注意編碼
MessageBox.Show(Encoding.GetEncoding("GB2312").GetString(recData));

注意"表單數(shù)據(jù)x"中包含如 "&","=","+"時(shí)需要使用,
HttpUtility.UrlEncode( "+++xxx為什么不編碼也可以",Encoding.GetEncoding("GB2312")) 進(jìn)行編碼
HttpUtility.UrlEncode(string) 默認(rèn)使用UTF-8進(jìn)行編碼,因此使用 UrlEncode編碼時(shí)并且字段里有中文,并且目標(biāo)網(wǎng)站使用GB2312時(shí),需要在UrlEncode函數(shù)中指明使用Gb2312
這樣上面的拼接代碼可以修改為如下:

postData.Append("formField1=" + HttpUtility.UrlEncode("表單數(shù)據(jù)一",Encoding.GetEncoding("GB2312")));
postData.Append("&formField2=" + HttpUtility.UrlEncode("表單數(shù)據(jù)二",Encoding.GetEncoding("GB2312")));

相關(guān)文章

  • C# 中使用 Exceptionless的方法

    C# 中使用 Exceptionless的方法

    這篇文章主要介紹了C# 中使用 Exceptionless的方法,幫助大家更好的理解和使用c#,感興趣的朋友可以了解下
    2020-12-12
  • C#操作Windows服務(wù)類System.ServiceProcess.ServiceBase

    C#操作Windows服務(wù)類System.ServiceProcess.ServiceBase

    這篇文章介紹了C#操作Windows服務(wù)類System.ServiceProcess.ServiceBase,文中通過示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-05-05
  • C#解析JSON實(shí)例

    C#解析JSON實(shí)例

    這篇文章主要介紹了C#解析JSON的方法,主要采用了C#自帶的JavaScriptSerializer類來實(shí)現(xiàn),方法簡(jiǎn)單實(shí)用,需要的朋友可以參考下
    2014-09-09
  • 詳解c# 切片語法糖

    詳解c# 切片語法糖

    這篇文章主要介紹了c# 切片語法糖的相關(guān)資料,幫助大家更好的理解和學(xué)習(xí)c#,感興趣的朋友可以了解下
    2020-09-09
  • C#使用windows服務(wù)開啟應(yīng)用程序的方法

    C#使用windows服務(wù)開啟應(yīng)用程序的方法

    這篇文章主要介紹了C#使用windows服務(wù)開啟應(yīng)用程序的方法,實(shí)例分析了C#操作windows服務(wù)開啟應(yīng)用程序所遇到的問題及相關(guān)解決技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-09-09
  • FileStream常用的屬性與方法總結(jié)

    FileStream常用的屬性與方法總結(jié)

    本篇文章主要是對(duì)FileStream常用的屬性與方法進(jìn)行了詳細(xì)的總結(jié)介紹,需要的朋友可以過來參考下,希望對(duì)大家有所幫助
    2014-01-01
  • unity實(shí)現(xiàn)無限列表功能

    unity實(shí)現(xiàn)無限列表功能

    這篇文章主要介紹了unity實(shí)現(xiàn)無限列表功能,水平方向,豎直方向滑動(dòng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-04-04
  • C#實(shí)現(xiàn)將json轉(zhuǎn)換為DataTable的方法

    C#實(shí)現(xiàn)將json轉(zhuǎn)換為DataTable的方法

    這篇文章主要介紹了C#實(shí)現(xiàn)將json轉(zhuǎn)換為DataTable的方法,涉及C#操作json及DataTable的技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-03-03
  • C# 操作PostgreSQL 數(shù)據(jù)庫的示例代碼

    C# 操作PostgreSQL 數(shù)據(jù)庫的示例代碼

    本篇文章主要介紹了C# 操作PostgreSQL 數(shù)據(jù)庫的示例代碼,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-11-11
  • C#實(shí)現(xiàn)嵌套循環(huán)的示例代碼

    C#實(shí)現(xiàn)嵌套循環(huán)的示例代碼

    這篇文章主要為大家詳細(xì)介紹了C#實(shí)現(xiàn)嵌套循環(huán)的相關(guān)知識(shí),文中的示例代碼講解詳細(xì),具有一定的學(xué)習(xí)價(jià)值,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2023-09-09

最新評(píng)論