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

Jos*_*osh 5 c#

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

Yak*_*ych 17

是否有特定要求使用StreamReader?除非有,你可以使用这个WebClient类:

var webClient = new WebClient();
string readHtml = webClient.DownloadString("your_file_path_url");
Run Code Online (Sandbox Code Playgroud)


LBu*_*kin 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();
Run Code Online (Sandbox Code Playgroud)


lak*_*tak 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())
    ...
Run Code Online (Sandbox Code Playgroud)