2017-04-04 7 views
8

का उपयोग करें जब मैं कोई अनुरोध करता हूं तो मुझे एक एक्सएमएल वापस मिल जाता है। लेकिन मुझे जो चाहिए वह एक JSON है। बदले में JSON प्राप्त करने के लिए दस्तावेज़ में कहा गया है: Accept: application/json HTTP शीर्षलेख का उपयोग करें।REST API - "स्वीकार करें: एप्लिकेशन/जेसन" HTTP शीर्षलेख

लेकिन जहां देवताओं के नाम में मुझे HTTP शीर्षलेख Accept: application/json अंदर डालने के लिए मिलता है।

http://localhost:8080/otp/routers/default/plan?fromPlace=52.5895,13.2836&toPlace=52.5461,13.3588&date=2017/04/04&time=12:00:00 
+2

आप अनुरोध कैसे भेज रहे हैं? –

+0

यह आपको समझने में मदद कर सकता है: http://stackoverflow.com/documentation/rest/1664/getting-started-with-rest/20145/rest-over-http – sp00m

उत्तर

17

आप सही अनुमान लगाया, HTTP हेडर यूआरएल का हिस्सा नहीं हैं:

मेरा अनुमान है यह यूआरएल-अनुरोध है, जो लगता है कि अंदर हो नहीं लगता है है।

और जब आप ब्राउज़र में एक यूआरएल टाइप करते हैं तो अनुरोध मानक शीर्षलेखों के साथ जारी किया जाएगा। वैसे भी आरईएसटी एपिस ब्राउज़र के पता बार में एंडपॉइंट टाइप करके उपभोग करने के लिए नहीं हैं।

सबसे आम परिदृश्य यह है कि आपका सर्वर किसी तृतीय पक्ष REST Api का उपभोग करता है।

तो अपने सर्वर-साइड कोड forges एक उचित प्राप्त करने के लिए (/ डाल/पोस्ट/DELETE) अनुरोध एक दिया endpoint (यूआरएल) (, जब जरूरत अपने मामले की तरह) कुछ हेडर और अंत में स्थापित करने की ओर इशारा करते (शायद) कुछ डेटा भेजना (उदाहरण के लिए आमतौर पर POST अनुरोध में होता है)।

अनुरोध को फोर्ज करने के लिए कोड, इसे भेजें और अंत में प्रतिक्रिया प्राप्त करें आपकी सर्वर की ओर से भाषा पर निर्भर करता है।

यदि आप परीक्षण एक आरईएसटी एपीआई आप कमांड लाइन से curl उपकरण का उपयोग कर सकते हैं।

curl अनुरोध करता है और stdout को प्रतिक्रिया आउटपुट करता है (जब तक अन्यथा निर्देश नहीं दिया जाता है)।

आपके मामले में जांच अनुरोध इस तरह जारी किया जाएगा:

$curl -H "Accept: application/json" 'http://localhost:8080/otp/routers/default/plan?fromPlace=52.5895,13.2836&toPlace=52.5461,13.3588&date=2017/04/04&time=12:00:00' 

H या --header निर्देश एक हैडर और अपने मूल्य निर्धारित करता है।