程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#入門知識 >> C#中在WebClient中應用post發送數據完成辦法

C#中在WebClient中應用post發送數據完成辦法

編輯:C#入門知識

C#中在WebClient中應用post發送數據完成辦法。本站提示廣大學習愛好者:(C#中在WebClient中應用post發送數據完成辦法)文章只能為提供參考,不一定能成為您想要的結果。以下是C#中在WebClient中應用post發送數據完成辦法正文


許多時刻,我們須要應用C#中的WebClient 來收發數據,WebClient 類供給向 URI 標識的任何當地、Intranet 或 Internet 資本發送數據和從這些資本吸收數據的公共辦法。本文就較為具體的解釋了WebClient中應用post發送數據完成辦法。

上面先說說WebClient 最重要的功效。

WebClient 結構函數

.Ctor 包含 一個空結構函數 和一個靜態結構函數, 靜態結構函數重要為UrlEncode 和UrlEncodeAndWirte 編碼供給參照byte[]數據的初始化感化。以下所示:

stati WebClient()

public WebClient() 

WebClient供給四種將數據上載到資本的辦法:

OpenWrite 前往一個用於將數據發送到資本的 Stream。
UploadData 將字節數組發送到資本並前往包括任何呼應的字節數組。
UploadFile 將當地文件發送到資本並前往包括任何呼應的字節數組。
UploadValues 將NameValueCollection 發送到資本並前往包括任何呼應的字節數組。

WebClient還供給三種從資本下載數據的辦法:

DownloadData 從資本下載數據並前往字節數組。
DownloadFile 從資本將數據下載到當地文件。
OpenRead 從資本以 Stream 的情勢前往數據。

懂得了WebClient的常識後,我們開端正式進入正題。
經由過程Post方法發送數據可以免Get方法的數據長度限制,上面采取WebClient來完成這個功效。Web辦事端可所以任何CGI然則要弄清晰Web端接收的編碼,代碼以下:

WebClient wc = new WebClient();
StringBuilder postData = new StringBuilder();
postData.Append("formField1=" + "表雙數據一");
postData.Append("&formField2=" + "表雙數據二");
postData.Append("&formField3=" + "表雙數據三");
//上面是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));

留意"表雙數據x"中包括如 "&","=","+"時須要應用,
HttpUtility.UrlEncode( "+++xxx為何不編碼也能夠",Encoding.GetEncoding("GB2312")) 停止編碼
HttpUtility.UrlEncode(string) 默許應用UTF-8停止編碼,是以應用 UrlEncode編碼時而且字段裡有中文,而且目的網站應用GB2312時,須要在UrlEncode函數中指明應用Gb2312
如許下面的拼接代碼可以修正為以下:

postData.Append("formField1=" + HttpUtility.UrlEncode("表雙數據一",Encoding.GetEncoding("GB2312")));
postData.Append("&formField2=" + HttpUtility.UrlEncode("表雙數據二",Encoding.GetEncoding("GB2312")));
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved