2011-08-15 20 views
9

के साथ HTTP प्रतिक्रियाओं को पार्स करने के लिए लाइब्रेरी मैं Arduino अलग करने के साथ वेब HTTP प्रतिक्रिया को पार्स करने के लिए एक लाइब्रेरी की तलाश में हूं, उदाहरण के लिए, सामग्री से HTTP शीर्षलेख।Arduino

वहां विभिन्न स्केच पढ़ना, डेटा की धारा का विश्लेषण करने के लिए सबसे उन्नत टूल TextFinder है।

क्या आप किसी भी अन्य पुस्तकालयों से अवगत हैं जो HTTP प्रतिक्रिया को पार करने में मदद कर सकते हैं?

उत्तर

13

किसी HTTP क्लाइंट अनुप्रयोगों के लिए एक Arduino पुस्तकालय पर काम कर रहा है:

https://github.com/amcewen/HttpClient

+1

मैं एक गूगल एप इंजन बैकएंड के साथ इस लाइब्रेरी के साथ मुद्दों कर रहा हूँ की संख्या के साथ दर्ज है से एक कांटा। ऐसा लगता है कि lib libunked एन्कोडिंग का समर्थन नहीं करता है और जब मैं अपनी प्रतिक्रिया पढ़ता हूं तो अजीब वर्ण दिखाई देते हैं।यह ऐप इंजन द्वारा समर्थित होने पर HTTP 1.0 का उपयोग करने के लिए lib को बताए जितना आसान हो सकता है। –

+0

यहां प्रलेखन: https://www.arduino.cc/en/Reference/WiFi101 ("क्लाइंट क्लास" के लिए खोजें, आप इसे दाईं तरफ साइडबार में पा सकते हैं) – Brampage

2

एक वेब सर्वर के रूप में Arduino का उपयोग करने के लिए वहाँ कुछ Arduino ढाल और पुस्तकालयों है और शुरू करने के लिए एक अच्छी जगह हो सकती है।

TinyWebServer में एक डाउनलोड करने योग्य HTTP लाइब्रेरी है जो हेडर पार्सिंग को भी संभाल सकती है।

(केवल HTTP अनुरोध को संभाल कर सकते हैं) Arduino खेल का मैदान से कुछ वेब सर्वर कोड:

3

दो मुख्य विकल्प हैं:

  1. https://github.com/amcewen/HttpClient
  2. https://github.com/interactive-matter/HTTPClient

मुख्य अंतर मैं अब तक देखा है:

  • # 1 शून्य प्रलेखन है, # 2 काफी है सभ्य दस्तावेज़ीकरण
  • # 1 आपको अपना यूआरएल बनाने की आवश्यकता है मैन्युअल रूप से; # 2 आपको आपूर्ति करने देता है उदा। पैरामीटर नाम = value जोड़े की एक सरणी
  • # 2 Arduino का IP पता और लक्ष्य यूआरएल के आईपी पते प्रदान करने की आवश्यकता है, # 1 Arduino 1.0 के अंतर्निहित DHCP और DNS लुकअप पुस्तकालयों का उपयोग करता
6

हैं आप सभी की जरूरत हेडर से छुटकारा पाने के लिए है, तो कोड के इस बिट मेरे लिए ठीक काम करता है:

char c = client.read(); 
result = result + c;  

**// Delete HTTP headers 
if(result.endsWith("Content-Type: text/plain")) 
{ 
    result=""; 
}** 

मैं स्ट्रिंग ऑब्जेक्ट में मेरी प्रतिक्रिया की दुकान है, और इसे खाली जब पिछले हैडर आता है। मैं एक HTTP विशेषज्ञ नहीं हूं, यह सुनिश्चित नहीं करता कि यह हेडर हमेशा आने वाला आखिरी है :)

आपके पास कुछ रिक्त स्थान, नई लाइनें आदि भी हो सकती हैं, इसे मुद्रित करने से पहले स्ट्रिंग को "ट्रिम करें"!

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