2010-08-11 29 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(); 
相关问题