2012-06-03 18 views
5

निम्नलिखित कोड के साथ, मुझे संदेश 'HTTP/1.1 403 निषिद्ध' संदेश के साथ अपवाद वर्ग EIdHTTPProtocolException मिलता है। प्रक्रिया svchostip.exe (11172)जब मैं whatismyip.com से कनेक्ट करता हूं तो मुझे "403 निषिद्ध" क्यों मिलता है?

function GetInternetIP:string; 
var 
    IdHTTPMainUrl : TIdHTTP; 
begin 
    try 
    IdHTTPMainUrl := TIdHTTP.Create(nil); 
    IdHTTPMainUrl.Request.Host := 'http://www.whatismyip.com/automation/n09230945.asp'; 
    Result := idHTTPMainUrl.Get('http://automation.whatismyip.com/n09230945.asp'); 
    except 
    IdHTTPMainUrl.Free; 
    end; 
end; 
+2

यह भाग्यशाली है, अन्यथा TIdHTTP रिसाव होगा। –

+2

आप 'होस्ट' प्रॉपर्टी को उस चीज़ पर सेट कर रहे हैं जो स्पष्ट रूप से होस्ट नाम नहीं है। यह एक संपूर्ण यूआरएल नहीं माना जाता है। आप * automation.whatismyip.com * से कनेक्ट कर रहे हैं, इसलिए 'होस्ट' प्रॉपर्टी के लिए भी इसका उपयोग करें। –

+2

आपको 'अनुरोध.होस्ट' को बिल्कुल भी असाइन नहीं करना चाहिए। 'TIdHTTP 'आंतरिक रूप से उस मान का प्रबंधन करता है। –

उत्तर

14

आप अपने उपयोगकर्ता एजेंट निर्धारित करने की आवश्यकता है, इस WhatIsMyIP faq में दर्ज है:

• मोज़िला के लिए अपने कार्यक्रम की उपयोगकर्ता एजेंट सेट करें/5.0 (Windows NT 6.1 ; WOW64; आर.वी.: 12.0) छिपकली/20,100,101 फ़ायरफ़ॉक्स/12.0, इस CloudFlare

इसके अलावा TIdHTTP उदाहरण मुक्त कराने के द्वारा अवरुद्ध किया जा रहा से अपने कार्यक्रम रखेंगे चाहिए बिना शर्त रहें, जब आप एक अपवाद फेंकते हैं तो आप केवल इसे मुक्त कर रहे हैं। अपवादों को संभालने के लिए, अपवाद हैंडलिंग का उपयोग करें।

function GetInternetIP:string; 
var 
    IdHTTPMainUrl : TIdHTTP; 
begin 
    IdHTTPMainUrl := TIdHTTP.Create(nil); 
    try 
    IdHTTPMainUrl.Request.UserAgent := 
     'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:12.0) Gecko/20100101 Firefox/12.0'; 
    Result := idHTTPMainUrl.Get('http://automation.whatismyip.com/n09230945.asp'); 
    finally 
    IdHTTPMainUrl.Free; 
    end; 
end; 
+0

धन्यवाद। यह काम करता हैं! –

+0

@ सेर्गी - आपका स्वागत है! –

+0

मुझे आपके समाधान के बाद एक ही समस्या मिली है नई त्रुटि 503 सेवा अस्थायी है अयोग्य ... फिक्सएक्स कैसे करें? – Hidden

संबंधित मुद्दे