C 中HttpWebRequest的用法詳解

2022-09-26 08:06:16 字數 4349 閱讀 5907

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 當然,這招...