2010-08-11 64 views
5

我有一個文件位於我想使用StreamReader讀取的URI。顯然,這會導致一個問題,因爲File.OpenText不支持URI路徑。該文件是一個包含一堆html的txt文件。我有多個網頁使用這個相同的HTML片段,所以我把它放在一個txt文件中,並在頁面加載時將它讀入頁面(當我將文件放在文件系統上時,我可以使用它,但需要將其放置在文檔存儲庫中,以便業務用戶可以訪問它)。我試圖避免使用iframe。有沒有辦法使用StreamReader與URI格式?如果沒有,還有什麼其他選擇使用C#讀取html文本文件?如果這不是最佳的,有人可以提出更好的方法嗎?如何使用StreamReader從URI讀取文件?

回答

10

如果您是使用代理,不要忘記設置您的憑據:

WebRequest request=WebRequest.Create(url); 
    request.Timeout=30*60*1000; 
    request.UseDefaultCredentials=true; 
    request.Proxy.Credentials=request.Credentials; 
    WebResponse response=(WebResponse)request.GetResponse(); 
    using (Stream s=response.GetResponseStream()) 
    ... 
17

是否有具體要求使用StreamReader?除非有,你可以使用WebClient類:

var webClient = new WebClient(); 
string readHtml = webClient.DownloadString("your_file_path_url"); 
13

你可以嘗試使用HttpWebRequestClass,或WebClient。這是稍微複雜的Web請求示例。它的優勢是的WebClient它爲您提供了請求是如何製造更多的控制:

HttpWebRequest httpRequest = (HttpWebRequest) WebRequest.Create(lcUrl); 

httpRequest.Timeout = 10000;  // 10 secs 
httpRequest.UserAgent = "Code Sample Web Client"; 

HttpWebResponse webResponse = (HttpWebResponse) httpRequest.GetResponse(); 
StreamReader responseStream = new StreamReader(webResponse.GetResponseStream()); 

string content = responseStream.ReadToEnd(); 
相關問題