के साथ TIdHttp से प्रतिक्रिया प्राप्त करना मैं StackApps एपीआई के लिए डेल्फी लाइब्रेरी लिख रहा हूं।त्रुटि कोड 400
मैंने इंडी के साथ एक समस्या में भाग लिया है। मैं संस्करण का उपयोग कर रहा हूं जो डेल्फी 2010 के साथ जहाजों का उपयोग कर रहा है। यदि आप स्टैकएपपीएस एपीआई में से किसी एक के लिए अमान्य पैरामीटर पास करते हैं तो यह एक HTTP त्रुटि कोड 400 लौटाएगा और फिर प्रतिक्रिया में इसमें अधिक जानकारी के साथ एक JSON ऑब्जेक्ट होगा।
क्रोम ब्राउज़र में http://api.stackoverflow.com/0.8/stats/?Key=BadOnPurpose पर जाकर आप एक उदाहरण देख सकते हैं। अर्थात। और फ़ायरफ़ॉक्स जेएसओएन छुपाता है।
वायरशर्क का उपयोग करके मैं देख सकता हूं कि JSON ऑब्जेक्ट नीचे दिए गए कोड का उपयोग करके वापस कर दिया गया है, लेकिन मैं इंडी का उपयोग करके इसे एक्सेस करने में असमर्थ हूं।
इस परीक्षण कोड के लिए मैंने फॉर्म पर एक TIdHttp घटक गिरा दिया और एक बटन क्लिक में निम्नलिखित कोड रखा।
procedure TForm10.Button2Click(Sender: TObject);
var
SS : TStringStream;
begin
SS := TStringStream.Create;
IdHTTP1.Get('http://api.stackoverflow.com/0.8/stats/?Key=BadOnPurpose',SS,[400]);
Memo1.Lines.Text := SS.DataString;
SS.Free;
end;
मैंने पारित किया [400] ताकि यह 400 अपवाद नहीं उठाए। ऐसा लगता है जैसे इंडी ने प्रतिक्रिया पढ़ना बंद कर दिया। चूंकि मेमो 1 की सामग्री खाली है।
मैं JSON विवरण प्राप्त करने का एक तरीका ढूंढ रहा हूं।
मैं सही खड़ा हूं। –
और हाँ AIgnoreReplies जवाबों को अनदेखा करने में वास्तव में अच्छा है :-) –
मुझे प्रतिक्रिया भी प्राप्त करने की आवश्यकता है, ताकि आप जोड़ सकें: Memo1.Lines.Add (IdHTTP1.ResponseText); –