httpwebrequest類主要利用http 協議和伺服器互動,通常是通過 get 和 post 兩種方式來對資料進行獲取和提交。下面對這兩種方式進行一下說明:
get 方式:
get 方式通過在網路位址附加引數來完成資料的提交,比如在位址 中,前面部分 表示資料提交的**,後面部分 hl=zh-cn 表示附加的引數,其中 hl 表示乙個鍵(key), zh-cn 表示這個鍵對應的值(value)。
程式**如下:
複製** **如下:
使用 get 方式提交中文資料。
get 方式通過在網路位址中附加引數來完成數程式設計客棧據提交,對於中文的編碼,常用的有 gb2312 和 utf8 兩種。
用 gb2312 方式編碼訪問的程式**如下:
複製** **如下:
encoding myencoding = encoding.getencoding("gb2312");
string address = "/?" + httputility.urlencode("引數一", myencoding) + "=" + httputility.urlencode("值一", myencoding);
在上面的程式**中,我們以 get 方式訪問了** ,傳遞了引數「引數一=值一」,由於無法告知對方提交資料的編碼型別,所以編碼方式要以對方的**為標準。
post 方式:
post 方式通過在頁面內容中填寫引數的方法來完成資料的提交,引數的格式和 get 方式一樣,是類似於 hl=zh-cn&newwindow=1 這樣的結構。
程式**如下:
複製** **如下:
在上面的**中,我們訪問了 的**,分別以 get 和 post 方式提交了資料,並接收了返回的頁面內容。然而,如果提交的引數中含有中文,那麼這樣的處理是不夠的,需要對其進行編碼,讓對方**能夠識別。
使用 post 方式提交中文資料
post 方式通過在頁面內容中填寫引數的方法來完成資料的提交,由於提交的引數中可以說明使用的編碼方式,所以理論上能獲得更大的相容性。
用 gb2312 方式編碼訪問的程式**如下:
複製** **如下:
encoding myencoding = encoding.getencoding("gb2312");
string param = httputility.urlencode("引數一", myencoding) + "=" + httputility.urlencode("值一", myencoding) + "&" + httputility.urlencode("引數二", myencoding) + "=" + httputility.urlencode("值二", myencoding);
從上面的**可以看出, post 中文資料的時候,先使用 urlencode 方法將中文字元轉換為編碼後的 ascii 碼,然後提交到伺服器,提交的時候可以說明編碼的方式,用來使對方伺服器能夠正確的解析。
用c#語言寫的關於httpwebrequest 類的使用方法
複製** **如下:
/// 獲取**cookie
///
/// **
/// cookie
///
public static string gethtml(string url, out string cookie)
catch (webexception ex)
cookie = wrp.headers.get("set-cookie");
return html;
}public static string gethtml(string url, string postdata, string cookie, out string header, string server)
public static string gethtml(string server, string url, string postdata, string cookie, out string header)
&n程式設計客棧bsp;
public static string gethtml(string server, string url, byte byterequest, string cookie, out string header)
///
/// post模式瀏覽
///
/// 伺服器位址
/// **
/// 流
/// cookie
/// 控制代碼
///
public static byte gethtmlbybytes(string server, string url, byte byterequest, string cookie, out string header)
public static byte readfully(stream stream)}}
///
/// get模式
///
/// **
/// cookies
/// 控制代碼
/// 伺服器
/// 伺服器
///
public static string gethtml(string url, string cookie, out string header, string server)
///
/// get模式瀏覽
&nwww.cppcns.combsp; ///
/// get**
/// cookie
/// 控制代碼
/// 伺服器位址
///
///
public static string gethtml(string url, string cookie, out string header, string server, string val)
}本文標題: c#中httpwebrequest的用法詳解
本文位址:
C中extern和C 中的export
為了訪問其他編譯單元 如另一 檔案 中的變數或物件,對普通型別 包括基本資料類 結構和類 可以利用關鍵字extern,來使用這些變數或物件時 但是對模板型別,則必須在定義這些模板類物件和模板函式時,使用標準c 新增加的關鍵字export 匯出 出口 輸出 例如 extern int n extern...
C中相容C 操作
在c 中加入c 風格的 在編譯的時候,報錯的是必然的.因為不相容.例如,在c中加入c 的namespace namespace cv get window image rectangle coordinates,width and height cvapi cv rect cvgetwindowim...
C中呼叫C 函式
將 c 函式宣告為 extern c 在你的 c 裡做這個宣告 然後呼叫它 在你的 c 或者 c 裡呼叫 例如 c code extern c void f int void f int i 然後,你可以這樣使用 f c code void f int void cc int i f i 當然,這招...