2011-10-07 58 views
22

我想對網站進行HTTP調用。我只需要點擊該URL並且不想上傳或下載任何數據。什麼是最簡單快速的方法。C# - 如何進行HTTP調用

我想下面的代碼,但它的緩慢和後第二次重複的請求時,它只是進入超時59個secounds,比簡歷:

WebRequest webRequest = WebRequest.Create("http://ussbazesspre004:9002/DREADD?" + fileName); 
webRequest.Method = "POST"; 
webRequest.ContentType = "application/x-www-form-urlencoded"; 
webRequest.ContentLength = fileName.Length; 

Stream os = webRequest.GetRequestStream(); 
os.Write(buffer, 0, buffer.Length); 
os.Close(); 

使用Web客戶端更有效率?

WebClient web = new WebClient(); 
web.UploadString(address); 

我使用的.NET版本3.5

+0

「正在使用WebClient更高效嗎?」什麼阻止了你嘗試? –

回答

40

如果你真的只是想打電話給一個網站,那麼你有一些額外的東西。所有你應該需要的是:

WebRequest webRequest = WebRequest.Create("http://ussbazesspre004:9002/DREADD?" + fileName); 
WebResponse webResp = webRequest.GetResponse(); 

如果你不想等待響應,你可以看BeginGetResponse使其異步的。

9

如果你不想上傳的任何數據,你應該使用:

webRequest.Method = "GET"; 

如果你真的不關心獲得任何數據回(例如,如果你只是要檢查,看看是否頁可用)使用方法:

webRequest.Method = "HEAD"; 

在這兩種情況下,代替的webRequest.GetRequestStream()使用:

WebResponse myWebResponse = webRequest.GetResponse(); 
5

WebClient的是一個更短,更簡潔的語法,但在幕後,它使用一個WebRequest的,所以在性能方面也不會更快,這將是等效的。如果您希望速度更快,則必須改進服務器端腳本或網絡基礎結構。問題不在客戶端。

+1

實現更高性能的另一種方法是使用'HEAD'HTTP方法,特別是在請求的文件很大的情況下。但是,我的猜測是,真正的問題在於別處。 –

相關問題