2010-08-11 23 views
5

StreamReader kullanarak okumak istediğim bir URI dosyasına sahibim. Açıkçası, File.OpenText URI yollarını desteklemediği için bu bir soruna neden olur. Dosya, içinde bir miktar html bulunan bir txt dosyasıdır. Aynı html parçasını kullanan birden çok web sayfam var, bu yüzden bir txt dosyasına koydum ve sayfa yüklendiğinde sayfaya veriyorum (dosyayı dosya sistemine koyduğumda çalışabilirim) Ancak, bir belge kullanıcısının çevrimiçi bir belge deposuna koyması gerekir, böylece bir iş kullanıcısı buna ulaşabilir). Bir iframe kullanmaktan kaçınmaya çalışıyorum. StreamReader'ı URI formatlarıyla kullanmanın bir yolu var mı? Değilse, html'nin txt dosyasında okumak için C# kullanarak başka hangi seçenekler vardır? Bu uygun değilse, birisi daha iyi bir yaklaşım önerebilir mi?StreamReader'ı kullanarak bir URI'den dosya nasıl okunur?

cevap

10

kimlik bilgilerinizi ayarlamak unutmayın Proxy'yle ise:

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 kullanımı için belirli bir gereksinim var mı?

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

Sen HttpWebRequestClass veya WebClient kullanarak deneyebilirsiniz: var sürece, WebClient sınıfını kullanabilirsiniz. İşte biraz karmaşık bir web isteği örneği. Bu WebClient'a üzerinde avantajı size istek yapıldığında nasıl daha fazla denetim imkanı mi:

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(); 
İlgili konular