如何使用StreamReader从URI读取文件?

时间:2010-08-11 16:16:39

标签: c#

我在URI上有一个文件,我想用StreamReader读取。显然,这会导致问题,因为File.OpenText不支持URI路径。该文件是一个txt文件,里面有一堆html。我有多个网页使用同一块html,所以我把它放在一个txt文件中,并在页面加载时将其读入页面(当我将文件放在文件系统上时,我可以将它运行起来,但需要将其放在网上的文档存储库中,以便业务用户可以访问它。我试图避免使用iframe。有没有办法将StreamReader与URI格式一起使用?如果没有,还有哪些其他选项使用C#来读取html的txt文件?如果这不是最佳的,有人可以提出更好的方法吗?

3 个答案:

答案 0 :(得分:17)

是否有使用StreamReader的特定要求?除非有,您可以使用WebClient类:

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

答案 1 :(得分:13)

您可以尝试使用HttpWebRequestClassWebClient。这是稍微复杂的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();

答案 2 :(得分: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())
    ...