मैं इसका उपयोग कर रहा हूँ Savon पुस्तकालय जो बदले में उपयोग करता है HTTPI, परंतु HTTPI केवल HTTP स्थिति कोड 200..299 को सफल मानता है। दुर्भाग्य से, SOAP सर्वर मैं उपयोग करने के लिए कनेक्ट कर रहा हूं HTTP 302 मिला अपने ग्राहकों को अन्य URL पर पुनर्निर्देशित करना। क्या कोई तरीका है जिससे मैं कॉन्फ़िगर कर सकता हूं HTTPI HTTP रीडायरेक्ट का पालन करने के लिए?
उत्तर:
उत्तर № 1 के लिए 1वासाबी कोड पढ़ना मुझे मिला यह रेखा, जो कॉल करता है यह रेखा, जो कॉल करता है यह रेखा, इसलिए मुझे लगता है कि आप एक क्रूर लेकिन प्रभावी निरंतर पुनर्निर्धारण के साथ हल कर सकते हैं:
HTTPI::Response::SuccessfulResponseCodes = HTTPI::Response::SuccessfulResponseCodes.to_a << 302
आप लगातार पुनर्परिभाषित चेतावनी को अनदेखा कर सकते हैं (आप उपयोग कर सकते हैं Kernel.silence_warnings{ ... }
)।
वैसे भी, मैं आपको एक मुद्दे को खोलने के लिए सुझाव देता हूं httpi; मुझे लगता है कि यह अपेक्षित व्यवहार होना चाहिए
जवाब के लिए 2 № 2
अनुरोध ऑब्जेक्ट पर "follow_redirect = true" का उपयोग करने का प्रयास करें।
request = HTTPI::Request.new
request.follow_redirect= true
...
बस यह वही मुद्दा था।
जवाब के लिए 0 № 3
किसी के लिए भी, जैसा कि मैंने Google खोज से किया है। Savon 2.11 क्लाइंट पर वैश्विक कॉन्फ़िगरेशन मान के साथ इसका समर्थन करता है:
follow_redirects: true