最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

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

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

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

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

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

stati WebClient()

public WebClient() 

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

OpenWrite 返回一個用于將數(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的知識后,我們開始正式進(jìn)入正題。
通過Post方式發(fā)送數(shù)據(jù)可以避免Get方式的數(shù)據(jù)長度限制,下面采用WebClient來實(shí)現(xiàn)這個功能。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"中包含如 "&","=","+"時需要使用,
HttpUtility.UrlEncode( "+++xxx為什么不編碼也可以",Encoding.GetEncoding("GB2312")) 進(jìn)行編碼
HttpUtility.UrlEncode(string) 默認(rèn)使用UTF-8進(jìn)行編碼,因此使用 UrlEncode編碼時并且字段里有中文,并且目標(biāo)網(wǎng)站使用GB2312時,需要在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#如何對多線程、多任務(wù)管理(demo)

    C#如何對多線程、多任務(wù)管理(demo)

    這篇文章主要通過一個小demo介紹了C#如何對多線程、多任務(wù)管理,需要的朋友可以參考下
    2015-07-07
  • 一個可逆加密的類(使用3DES加密)

    一個可逆加密的類(使用3DES加密)

    表示三重?cái)?shù)據(jù)加密標(biāo)準(zhǔn)算法的基類,TripleDES 的所有實(shí)現(xiàn)都必須從此基類派生。是從 SymmetricAlgorithm 類里繼承出來。
    2011-07-07
  • C#根據(jù)前臺傳入實(shí)體名稱實(shí)現(xiàn)動態(tài)查詢數(shù)據(jù)

    C#根據(jù)前臺傳入實(shí)體名稱實(shí)現(xiàn)動態(tài)查詢數(shù)據(jù)

    這篇文章主要為大家詳細(xì)介紹了C#如何根據(jù)前臺傳入實(shí)體名稱實(shí)現(xiàn)動態(tài)查詢數(shù)據(jù)的功能,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以了解一下
    2023-04-04
  • C#讀取QQ純真IP數(shù)據(jù)庫QQWry.Dat的代碼

    C#讀取QQ純真IP數(shù)據(jù)庫QQWry.Dat的代碼

    QQ純真IP庫算是IP地址收集較為全的一個IP庫,對于IP查詢來說這個是不錯的選擇。下面是如何查詢純真IP庫的一個類,使用C#代碼。
    2007-03-03
  • C# .NET創(chuàng)建虛擬目錄的方法詳解

    C# .NET創(chuàng)建虛擬目錄的方法詳解

    虛擬目錄(virtual directory),計(jì)算機(jī)術(shù)語,每個 Internet服務(wù)可以從多個目錄中發(fā)布。本文將為大家介紹如何通過C# asp.net mvc 創(chuàng)建虛擬目錄,感興趣的可以了解一下
    2022-01-01
  • 詳解WPF中的對象資源

    詳解WPF中的對象資源

    這篇文章主要介紹了WPF中對象資源的相關(guān)資料,幫助大家更好的理解和學(xué)習(xí)使用WPF,感興趣的朋友可以了解下
    2021-04-04
  • C#?RichTextBox制作文本編輯器

    C#?RichTextBox制作文本編輯器

    這篇文章主要為大家詳細(xì)介紹了C#?RichTextBox制作文本編輯器的方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-04-04
  • 使用C#編寫15子游戲

    使用C#編寫15子游戲

    這篇文章主要為大家詳細(xì)介紹了使用C#編寫15子游戲的具體代碼,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-05-05
  • C#利用LINQ實(shí)現(xiàn)一個文件拆分成多個文件的示例詳解

    C#利用LINQ實(shí)現(xiàn)一個文件拆分成多個文件的示例詳解

    在日常開發(fā)過程中,我們可能會遇到需要將一個大型文件拆分成多個小文件的需求,例如,為了便于傳輸、處理或備份,在C#中,我們可以利用LINQ技術(shù)來實(shí)現(xiàn)這一功能,下面我將詳細(xì)介紹如何使用LINQ拆分文件,需要的朋友可以參考下
    2024-08-08
  • 詳解C#開發(fā)Android應(yīng)用程序的流程

    詳解C#開發(fā)Android應(yīng)用程序的流程

    在本篇文章里小編給大家分享了關(guān)于C#開發(fā)Android應(yīng)用程序的流程和相關(guān)技巧,需要的朋友們跟著學(xué)習(xí)下。
    2019-03-03

最新評論

自贡市| 通渭县| 稻城县| 菏泽市| 宝清县| 建德市| 东城区| 拉孜县| 新乐市| 邵武市| 夏河县| 叶城县| 新乐市| 吉安市| 西吉县| 临夏县| 临猗县| 周口市| 彰化市| 湘潭市| 美姑县| 台中县| 阜城县| 大埔县| 大渡口区| 神农架林区| 江达县| 和林格尔县| 瑞丽市| 蒲城县| 太康县| 英山县| 长宁县| 遂川县| 青海省| 涟源市| 兴化市| 九龙县| 福建省| 中江县| 西乌珠穆沁旗|