मुझे सी में एक छोटे, कुशल वेब सर्वर के निर्माण में एक नई रुचि मिली है और HTTP शीर्षलेख से POST विधियों को पार्स करने में कुछ परेशानी हुई है। क्या किसी को "पोस्ट" डेटा से नाम/मूल्य जोड़े को पुनर्प्राप्त करने के तरीके के बारे में कोई सलाह होगी?पार्सिंग HTTP शीर्षलेख
POST /test HTTP/1.1
Host: test-domain.com:7017
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.0.1) Gecko/2008070208 Firefox/3.0.1
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-us,en;q=0.5
Accept-Encoding: gzip,deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive: 300
Connection: keep-alive
Referer: http://test-domain.com:7017/index.html
Cookie: __utma=43166241.217413299.1220726314.1221171690.1221200181.16; __utmz=43166241.1220726314.1.1.utmccn=(direct)|utmcsr=(direct)|utmcmd=(none)
Cache-Control: max-age=0
Content-Type: application/x-www-form-urlencoded
Content-Length: 25
field1=asfd&field2=a3f3f3
// ^-this
मुझे पूरी तरह से नीचे की रेखा को पुनः प्राप्त करने के लिए कोई ठोस तरीका नहीं दिखता है और यह सुनिश्चित करता है कि यह हर बार काम करता है। मैं कुछ भी में हार्ड कोडिंग के प्रशंसक नहीं हूँ।
आह, धन्यवाद। मैंने देखा कि नाम/मूल्य जोड़े की स्ट्रिंग से पहले एक अतिरिक्त जगह थी, लेकिन दो और दो को एक साथ नहीं रखा। –
@rofly: दो और दो की गणना न करें, बस मानक (आरएफसी 2616) पढ़ें। यह धारा 4.1 में है। – bortzmeyer
बस ध्यान रखें कि गैर-अनुपालन वाले ग्राहक हैं जो '\ n \ n' या '\ n \ r \ n' जैसे शीर्षकों के "रोचक" अंत का उपयोग करते हैं। – Wade