मैं rest-client
मणि के साथ 400 प्रतिक्रिया के शरीर को पढ़ने की कोशिश कर रहा हूं। समस्या यह है कि rest-client
इसे एक त्रुटि के रूप में फेंककर 400 का जवाब देता है, इसलिए मैं शरीर के पाठ को प्राप्त करने के किसी भी तरीके से नहीं समझ सकता।400 प्रतिक्रिया के शरीर को पढ़ना?
यहां प्रेरक उदाहरण है। फेसबुक ग्राफ एपीआई को यह कॉल पर विचार करें:
- एक 400 गलत अनुरोध HTTP प्रतिसाद
- रिटर्न JSON रिटर्न जवाब में:
JSON.parse(RestClient.get("https://graph.facebook.com/me?fields=id,email,first_name,last_name&access_token=#{access_token}"))
तो
access_token
की अवधि समाप्त हो या अमान्य है, फेसबुक दो बातें करता है अधिक जानकारी के साथ शरीर, इस तरह:
{
"error": {
"message": "The access token could not be decrypted",
"type": "OAuthException",
"code": 190
}
}
क्योंकि 400 प्रतिक्रिया एक त्रुटि उठाती है, मैं यह नहीं समझ सकता कि प्रतिक्रिया के शरीर को कैसे प्राप्त किया जाए। यही है, उदाहरण के लिए, यदि मैं कर्ल में या मेरे ब्राउज़र में जीईटी अनुरोध चलाता हूं, तो मैं शरीर को देख सकता हूं, लेकिन मैं यह नहीं समझ सकता कि इसे कैसे आराम से पहुंचाया जा सकता है।
begin
fb_response = JSON.parse(RestClient.get("https://graph.facebook.com/me?fields=id,email,first_name,last_name&access_token=#{access_token}"))
rescue => e
# 400 response puts me here
# How can I get the body of the above response now, so I can get details on the error?
# eg, was it an expired token? A malformed token? Something else?
end