2010-08-11 15 views
5

Mam plik na URI, który chciałbym czytać przy użyciu StreamReader. Oczywiście powoduje to problem, ponieważ File.OpenText nie obsługuje ścieżek URI. Plik jest plikiem txt zawierającym kilka html. Mam wiele stron internetowych, które używają tego samego kawałka html, więc umieściłem go w pliku txt i odczytuję go na stronie po załadowaniu strony (mogę go uruchomić po umieszczeniu pliku w systemie plików , ale trzeba umieścić go w internetowym repozytorium dokumentów, aby mógł do niego dotrzeć użytkownik biznesowy). Próbuję uniknąć używania elementu iframe. Czy istnieje sposób użycia StreamReader z formatami URI? Jeśli nie, jakie inne opcje są dostępne przy użyciu C# do odczytu w txt pliku HTML? Jeśli to nie jest optymalne, czy ktoś może zaproponować lepsze podejście?Jak odczytać plik z identyfikatora URI za pomocą StreamReadera?

Odpowiedz

10

Jeśli jesteś za serwerem proxy nie zapomnij ustawić poświadczeń:

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

Czy istnieje szczególny wymóg korzystania z StreamReader? O ile nie ma, można użyć klasy WebClient:

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

Można spróbować użyć HttpWebRequestClass lub WebClient. Oto nieco skomplikowany przykład żądania internetowego. Jest to przewaga nad WebClient jest to daje większą kontrolę nad tym, jak kierowany jest wniosek:

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(); 
Powiązane problemy