2010-04-02 12 views
6
c:/ruby/lib/ruby/gems/1.8/gems/mechanize-1.0.0/lib/mechanize.rb:259:in `get': 500 => Net::HTTPInternalServerError (Mechanize::ResponseCodeError) 

मैं ऊपर त्रुटि मिलती है जब मैं निम्नलिखित वेबपेजमैकेनाइजेशन का उपयोग करते समय मैं नेट :: HTTPInternalServer त्रुटि त्रुटि कैसे डिबग करूं?

http://fakewebsite.com//admin/edit_building.cfm?page=buildings&updateMode=yes&id=1251 

पर नेविगेट मैं ठीक से नेविगेट कर सकते जब कॉपी और एक ब्राउज़र में लिंक चिपकाने के लिए प्रयास करें।

नोट: यह वेबसाइट एक लॉगिन, जो मैं निम्नलिखित

$agent = Mechanize.new 
$agent.get('http://fakewebsite//admin/login.cfm?res=-5') 
form = $agent.page.forms.first 
form.EMail = "admin" 
form.Password = "password" 
form.submit 

यह लॉगिन की तरह कोड के साथ संभाल की आवश्यकता होती है तो बस ठीक काम करता है, के बाद से मैं अन्य वेब पृष्ठ लॉगिन द्वारा संरक्षित एक्सेस करते हैं।

मुझे यकीन नहीं है कि यहां से कहां जाना है, कोई सुझाव?


मैंने नीचे से कुछ मदद के साथ समस्या हल की। साइट पर सफलतापूर्वक लॉग इन करने के बाद बाहर निकलता है, यह मुझे होम पेज पर ले जाता है। इस होम पेज में अन्य वेबपृष्ठों की ओर इशारा करते हुए कई आईफ़्रेम हैं। मैकेनाइजेशन इन पृष्ठों को स्वचालित रूप से पुनर्प्राप्त नहीं करता है। जब मैंने मैन्युअल रूप से उन्हें पुनर्प्राप्त किया तो मुझे पता चला कि ये पृष्ठ कुकीज़ पर सेट कर रहे थे जो साइट पर अन्य पृष्ठों तक पहुंचने के लिए आवश्यक थे। मैंने गलती से माना था कि लॉगिन प्रक्रिया पूरी होने के बाद सभी कुकीज़ सेट हो जाएंगी लेकिन इससे पहले कि मैं होम पेज पर पहुंचे।

+0

मैंने लगभग समान समस्या में भाग लिया है। क्या आप यह समझाने में सक्षम होंगे कि आपने वास्तव में इसे कैसे हल किया? (यानी, आप कुकी समस्या के आसपास कैसे पहुंचे?) – CodeBiker

उत्तर

9

मैं लॉगिंग सक्षम करके आरंभ चाहते हैं:

agent.log = Logger.new(STDOUT) 

यह आप सभी हेडर, इनकमिंग और आउटगोइंग है, जो आप समस्या को समझने के लिए उपयोग कर सकते हैं देने के लिए जा रहा है। इसके अतिरिक्त, मैं स्कूप की तरह एक http sniffer का उपयोग करता हूं जो मुझे दिखाएगा कि ब्राउज़र में मैन्युअल रूप से यह यूआरएल दर्ज करने पर क्या हो रहा है। फिर आप यह समझने में सक्षम होंगे कि आपका ब्राउज़र क्या कर रहा है और समस्या को ढूंढने के साथ क्या कर रहा है।

इसके अलावा, उपयोगकर्ता-एजेंट को सेट करने का प्रयास करें क्योंकि कुछ वेबसाइटें ईमानदारी से स्वयं को पेश करती हैं तो कुछ वेबसाइट कनेक्शन समाप्त कर देती हैं।

agent.user_agent_alias = 'Mac Safari' 
+0

महान विचार! यह बहुत मदद करता है! – Geo

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