在我參加的一個項目中,有一個要求,某些 股票的價格將從某個Web界面查詢並以某種方式顯示。是否有任何C#等價於Perl的LWP :: UserAgent?
我知道使用像LWP :: UserAgent這樣的Perl模塊可以很容易地實現請求的「查詢」部分。但出於某種原因,C#已被選作語言來實現顯示部分。我不想在這個小項目中添加任何IPC(如套接字或間接通過數據庫),所以我的問題是有任何C#等價於Perl的LWP :: UserAgent?
在我參加的一個項目中,有一個要求,某些 股票的價格將從某個Web界面查詢並以某種方式顯示。是否有任何C#等價於Perl的LWP :: UserAgent?
我知道使用像LWP :: UserAgent這樣的Perl模塊可以很容易地實現請求的「查詢」部分。但出於某種原因,C#已被選作語言來實現顯示部分。我不想在這個小項目中添加任何IPC(如套接字或間接通過數據庫),所以我的問題是有任何C#等價於Perl的LWP :: UserAgent?
您可以使用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();
}
我不確定,但是你只是試圖發出HTTP請求?如果是這樣,你可以使用HttpWebRequest類。下面是一個示例http://www.csharp-station.com/HowTo/HttpWebFetch.aspx
如果你想簡單地從網絡獲取數據,你可以使用WebClient class。對於快速請求似乎很不錯。
是不是HttpWeb冗餘? – Schwern 2009-12-18 11:01:51
是的,你可以做WebRequest.Create(...)。我個人喜歡更明確,因爲你也可以做FtpWebRequest等。通常我也將WebRequest和WebResponse轉換爲HttpWebRequest和HttpWebResponse。這將爲您的請求/響應提供更多功能(如更改用戶代理)。 – 2009-12-18 14:52:09
我更新了我的代碼示例,以便對真實場景更有用。 – 2009-12-18 15:01:27