在客戶端和服務端檢測某個url是否可以訪問

2021-04-12 17:45:03 字數 3838 閱讀 2911

客戶端的檢測 利用js指令碼

這樣有時因為安全方面的問題 經常會提示 使用者需要繼續操作

服務端檢測 利用 httpwebrequest和httpwebresponse

當訪問的url需要訪問者的認證資訊時

private bool docheckreportserverurl(string surl, string susername, string suserpassword)

catch (system.net.webexception ex)

return value;

}httpwebrequest和httpwebresponse的應用

獲取某個url的內容

}httpwebrequest、httpwebresponse獲取網頁中文亂碼解決方案

httpwebrequest、httpwebresponse和http 協議

httpwebrequest 是 .net 基類庫中的乙個類,在命名空間 system.net 下面,用來使使用者通過 http 協議和伺服器互動。

httpwebrequest 對 http 協議進行了完整的封裝,對 http 協議中的 header, content, cookie 都做了屬性和方法的支援,很容易就能編寫出乙個模擬瀏覽器自動登入的程式。

程式使用 http 協議和伺服器互動主要是進行資料的提交,通常資料的提交是通過 get 和 post 兩種方式來完成,下面對這兩種方式進行一下說明:

1. get 方式。 get 方式通過在網路位址附加引數來完成資料的提交,比如在位址 http://www.google.com/webhp?hl=zh-cn 中,前面部分 http://www.google.com/webhp 表示資料提交的**,後面部分 hl=zh-cn 表示附加的引數,其中 hl 表示乙個鍵(key), zh-cn 表示這個鍵對應的值(value)。程式**如下:

2. post 方式。 post 方式通過在頁面內容中填寫引數的方法來完成資料的提交,引數的格式和 get 方式一樣,是類似於 hl=zh-cn&newwindow=1 這樣的結構。程式**如下:

string param = "hl=zh-cn&newwindow=1";

byte bs = encoding.ascii.getbytes(param);

using (stream reqstream = req.getrequeststream())

using (webresponse wr = req.getresponse())

在上面的**中,我們訪問了 www.google.com 的**,分別以 get 和 post 方式提交了資料,並接收了返回的頁面內容。然而,如果提交的引數中含有中文,那麼這樣的處理是不夠的,需要對其進行編碼,讓對方**能夠識別。

3. 使用 get 方式提交中文資料。 get 方式通過在網路位址中附加引數來完成資料提交,對於中文的編碼,常用的有 gb2312 和 utf8 兩種,用 gb2312 方式編碼訪問的程式**如下:

encoding myencoding = encoding.getencoding("gb2312");

string address = "http://www.baidu.com/s?" + httputility.urlencode("引數一", myencoding) + "=" + httputility.urlencode("值一", myencoding);

4. 使用 post 方式提交中文資料。 post 方式通過在頁面內容中填寫引數的方法來完成資料的提交,由於提交的引數中可以說明使用的編碼方式,所以理論上能獲得更大的相容性。用 gb2312 方式編碼訪問的程式**如下:

encoding myencoding = encoding.getencoding("gb2312");

string param = httputility.urlencode("引數一", myencoding) + "=" + httputility.urlencode("值一", myencoding) + "&" + httputility.urlencode("引數二", myencoding) + "=" + httputility.urlencode("值二", myencoding);

byte postbytes = encoding.ascii.getbytes(param);

using (stream reqstream = req.getrequeststream())

using (webresponse wr = req.getresponse())

從上面的**可以看出, post 中文資料的時候,先使用 urlencode 方法將中文字元轉換為編碼後的 ascii 碼,然後提交到伺服器,提交的時候可以說明編碼的方式,用來使對方伺服器能夠正確的解析。

以上列出了客戶端程式使用 http 協議與伺服器互動的情況,常用的是 get 和 post 方式。現在流行的 webservice 也是通過 http 協議來互動的,使用的是 post 方法。與以上稍有所不同的是, webservice 提交的資料內容和接收到的資料內容都是使用了 xml 方式編碼。所以, httpwebrequest 也可以使用在呼叫 webservice 的情況下。

socket(C )客戶端和服務端

define winsock deprecated no warnings include include define port 5150 define msgsize 1024 pragma comment lib,ws2 32.lib void main system pause includ...

客戶端和服務端路徑問題

客戶端和服務端路徑問題 1.客戶端路徑和伺服器端路徑 客戶端路徑需要給出應用名稱,例如 day05 1 aservlet 伺服器端路徑無需給出應用名稱,例如 aservlet 2.客戶端路徑 1 頁面中都是客戶端路徑 超連結的href 表單的action 2 重定向也是客戶端路徑 response....

socket 客戶端和服務端通訊

客戶端要連線伺服器 首先要知道伺服器的ip位址。而伺服器裡有很多的應用程式,每乙個應用程式對應乙個埠號 所以客戶端想要與伺服器中的某個應用程式進行通訊就必須要知道那個應用程式的所在伺服器的ip位址,及應用程式所對應的埠號 首先建立乙個解決方案,在解決方案下建立乙個 socket通訊 windows窗...