我在URI上有一个文件,我想用StreamReader读取。显然,这会导致问题,因为File.OpenText不支持URI路径。该文件是一个txt文件,里面有一堆html。我有多个网页使用同一块html,所以我把它放在一个txt文件中,并在页面加载时将其读入页面(当我将文件放在文件系统上时,我可以将它运行起来,但需要将其放在网上的文档存储库中,以便业务用户可以访问它。我试图避免使用iframe。有没有办法将StreamReader与URI格式一起使用?如果没有,还有哪些其他选项使用C#来读取html的txt文件?如果这不是最佳的,有人可以提出更好的方法吗?
答案 0 :(得分:17)
是否有使用StreamReader
的特定要求?除非有,您可以使用WebClient
类:
var webClient = new WebClient();
string readHtml = webClient.DownloadString("your_file_path_url");
答案 1 :(得分: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();
答案 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())
...