2010-08-11 9 views
5

मेरे पास एक यूआरआई में एक फाइल है जिसे मैं StreamReader का उपयोग करके पढ़ना चाहता हूं। जाहिर है, यह एक समस्या का कारण बनता है क्योंकि File.OpenText यूआरआई पथ का समर्थन नहीं करता है। फ़ाइल एक txt फ़ाइल है जिसमें HTML का एक गुच्छा है। मेरे पास कई वेब पेज हैं जो HTML के समान टुकड़े का उपयोग करते हैं, इसलिए मैंने इसे एक txt फ़ाइल में रखा है, और पेज लोड होने पर इसे पृष्ठ में पढ़ रहा हूं (जब मैं फ़ाइल सिस्टम पर फ़ाइल डालता हूं तो मैं इसे काम पर ला सकता हूं , लेकिन इसे ऑनलाइन दस्तावेज़ संग्रह में रखने की आवश्यकता है ताकि एक व्यावसायिक उपयोगकर्ता इसे प्राप्त कर सके)। मैं एक आईफ्रेम का उपयोग करने से बचने की कोशिश कर रहा हूं। क्या यूआरआई प्रारूपों के साथ StreamReader का उपयोग करने का कोई तरीका है? यदि नहीं, तो HTML के txt फ़ाइल में पढ़ने के लिए C# का उपयोग करके अन्य विकल्प क्या हैं? यदि यह इष्टतम नहीं है, तो क्या कोई बेहतर दृष्टिकोण सुझा सकता है?StreamReader का उपयोग कर यूआरआई से फ़ाइल को कैसे पढ़ा जाए?

उत्तर

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()) 
    ... 
17

क्या StreamReader का उपयोग करने के लिए कोई विशिष्ट आवश्यकता है?

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

आप HttpWebRequestClass, या WebClient का उपयोग कर की कोशिश कर सकते: नहीं है जब तक, आप WebClient वर्ग का उपयोग कर सकते हैं। यहां थोड़ा जटिल वेब अनुरोध उदाहरण दिया गया है। यह 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(); 
संबंधित मुद्दे