का उपयोग कर स्क्रीन स्क्रैपिंग हमारे पास एक उपकरण है जो जांचता है कि कोई दिया गया URL एक लाइव यूआरएल है या नहीं। यदि कोई दिया गया यूआरएल लाइव है तो हमारे सॉफ़्टवेयर का एक और हिस्सा स्क्रीन से सामग्री को स्क्रैप कर सकता है।त्रुटि प्राप्त करना "रिमोट सर्वर ने एक त्रुटि लौटा दी: (403) निषिद्ध" जब HttpWebRequest.GetResponse()
इस जाँच के लिए मेरी कोड अगर एक यूआरएल
public static bool IsLiveUrl(string url)
{
HttpWebRequest webRequest = WebRequest.Create(url) as HttpWebRequest;
webRequest.UserAgent = "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.0.6) Gecko/20060728 Firefox/1.5";
webRequest.CookieContainer = new CookieContainer();
WebResponse webResponse;
try
{
webResponse = webRequest.GetResponse();
}
catch (WebException e)
{
return false;
}
catch (Exception ex)
{
return false;
}
return true;
}
इस कोड को पूरी तरह से काम करता है लेकिन अपाचे पर होस्ट किसी विशेष साइट के लिए मैं संदेश निम्न के साथ एक वेब अपवाद हो रही लाइव है। "दूरस्थ सर्वर ने एक त्रुटि दिखाई: (403) निषिद्ध" आगे निरीक्षण पर मैं WebException वस्तु में निम्न विवरण पाया
स्थिति = "ProtocolError" StatusDescription = "बुरा व्यवहार"
यह अनुरोध है हेडर "उपयोगकर्ता-एजेंट: मोज़िला/5.0 (विंडोज़; यू; विंडोज एनटी 5.1; एन-यूएस; आरवी: 1.8.0.6) गीको/20060728 फ़ायरफ़ॉक्स/1.5 होस्ट: scenicspares.co.uk कनेक्शन: रखें-जीवित"
यह प्रतिक्रिया हैडर "Keep-Alive: timeout = 4, max = 512 कनेक्शन: रखें-जीवित स्थानांतरण-एन्कोडिंग: chunked सामग्री प्रकार: पाठ/html दिनांक: गुरु, 13 जनवरी 2011 10:29:36 GMT सर्वर: अपाचे "
मैं इन VS2008 में एक घड़ी का उपयोग हेडर निकाले। उपयोग में फ्रेम काम 3.5 है।
हैलो @ साइड, मुझे एक ही समस्या का सामना करना पड़ता है, और पहले से ही जोड़ता है। कोड स्वीकार करें, लेकिन मुझे अभी भी यह त्रुटि मिली है। कोई विचार? धन्यवाद – swdev
समझ गया, मुझे इन तीन पंक्तियों को जोड़ना होगा, 'webRequest.Method = "GET"; webRequest.UserAgent = "Foo"; webRequest.Accept = "text/html"; 'अलग-अलग सर्वर को विभिन्न सेटअप – swdev
धन्यवाद swdev की आवश्यकता हो सकती है। आपकी नोक कुछ विकिपीडिया पृष्ठों के साथ समस्या का समाधान करने लगती है। – newman