2009-12-18 90 views
3

在我參加的一個項目中,有一個要求,某些 股票的價格將從某個Web界面查詢並以某種方式顯示。是否有任何C#等價於Perl的LWP :: UserAgent?

我知道使用像LWP :: UserAgent這樣的Perl模塊可以很容易地實現請求的「查詢」部分。但出於某種原因,C#已被選作語言來實現顯示部分。我不想在這個小項目中添加任何IPC(如套接字或間接通過數據庫),所以我的問題是有任何C#等價於Perl的LWP :: UserAgent?

回答

6

您可以使用System.Net.HttpWebRequest對象。

它看起來是這樣的:

// Setup the HTTP request. 
HttpWebRequest httpWebRequest = (HttpWebRequest)HttpWebRequest.Create("http://www.google.com"); 

// This is optional, I'm just demoing this because of the comments receaved. 
httpWebRequest.UserAgent = "My Web Crawler"; 

// Send the HTTP request and get the response. 
HttpWebResponse httpWebResponse = (HttpWebResponse)httpWebRequest.GetResponse(); 

if (httpWebResponse.StatusCode == HttpStatusCode.OK) 
{ 
    // Get the HTML from the httpWebResponse... 
    Stream responseStream = httpWebResponse.GetResponseStream(); 
    StreamReader reader = new StreamReader(responseStream); 
    string html = reader.ReadToEnd(); 
} 
+1

是不是HttpWeb冗餘? – Schwern 2009-12-18 11:01:51

+0

是的,你可以做WebRequest.Create(...)。我個人喜歡更明確,因爲你也可以做FtpWebRequest等。通常我也將WebRequest和WebResponse轉換爲HttpWebRequest和HttpWebResponse。這將爲您的請求/響應提供更多功能(如更改用戶代理)。 – 2009-12-18 14:52:09

+0

我更新了我的代碼示例,以便對真實場景更有用。 – 2009-12-18 15:01:27

2

如果你想簡單地從網絡獲取數據,你可以使用WebClient class。對於快速請求似乎很不錯。

相關問題