2009-11-19 39 views
2

與可從http://download.finance.yahoo.com/d/quotes.csv?s=RHT下載的CSV文件類似。如何下載需要驗證的文件?下載需要使用vb.net/c#進行認證的文件?

我可以簡單地使用

My.Computer.Network.DownloadFile("http://download.finance.yahoo.com/d/quotes.csv?s=RHT,MSFT,NOVL&f=sl1c1d1&e=.csv", "h:\s.csv")

下載它可在公共文件。我嘗試根據MSDN documentation設置用戶名和密碼,但我得到的僅僅是登錄頁面的HTML內容。

回答

1

聽起來您正在使用的網站正在使用表單身份驗證。除非您有權訪問使用領域身份驗證的版本,否則當您擁有CookieContainer時,您可能需要使用HttpWebRequest和假POST請求,以便您可以保留該令牌。然後,您可以將該令牌包含在獲取請求中以下載CSV文件。

2

這一切都取決於網站是否會解釋您的用戶名/你在HTTP請求中提供密碼。一些網站/協議將會,而另一些則不會。

這是一篇文章,展示瞭如何使用WebRequest類下載。

Downloading Files with the WebRequest and WebResponse Classes

所有你除了這篇文章需要的是將您的用戶名/密碼到的WebRequest。你可以這樣說:

// Create a request for the specified remote file name 
WebRequest request = WebRequest.Create(remoteFilename); 
if (request != null) 
{ 
    string username = "your username"; 
    string password = "your password"; 
    request.Credentials = new System.Net.NetworkCredential(username, password); 
    ... 
} 

不幸的是,如果採用這種方法不起作用,那麼雅虎的財務頁面不允許自動提供用戶名/密碼,你必須登錄「老老式的方式「能夠下載你的文件。

+0

感謝道格,它解決了我的問題。 – Hallaghan 2012-03-27 14:47:02

相關問題