2009-05-04 10 views
32

मैं एक सी ++ लाइब्रेरी की तलाश में हूं जो HTTP क्लाइंट के कार्यान्वयन को लागू या सक्षम बनाता है। यह कुकीज़ को भी संभाल लेना चाहिए।HTTP क्लाइंट को लागू करने के लिए मुझे किस सी ++ लाइब्रेरी का उपयोग करना चाहिए?

आप क्या प्रस्तावित करेंगे?

+0

डुप्लिकेट: http://stackoverflow.com/प्रश्न/342918/सरल-एसिंक्रोनस-बहु-थ्रेडेड-http-request-library-for-c – lothar

+6

इम्हो नहीं, यह एक और सवाल है (एसिंक्रोनस लाइब्रेरी, थ्रेडिंग) – dfa

उत्तर

23

Curl++: एक विकल्प है, खासकर यदि आप एक सी ++ शैली के अधिक में बातें करना चाहते हैं।

cpp-netlib: बहुत अच्छा और प्रयोग करने में आसान है, ubuntu पर उपलब्ध

sudo apt-get install libcppnetlib-dev 

उदाहरण:

using namespace boost::network; 
using namespace boost::network::http; 

client::request request_("http://127.0.0.1:8000/"); 
request_ << header("Connection", "close"); 
client client_; 
client::response response_ = client_.get(request_); 
std::string body_ = body(response_); 
+0

टूटी हुई लिंक (15 वर्ण) –

+0

एंडरस्कोर सम्मेलन का अंत क्या होता है संकेत मिलता है? – rbanffy

10

सी ++ (एसटीएल) डिफ़ॉल्ट रूप से एक HTTP या नेटवर्क लाइब्रेरी नहीं है, आप होगा कुछ और करने के लिए।

libcurl जो भी आप चाहते हैं वह करना चाहिए। cURL++ एक चमकदार सी ++ रैपर में लिपटे एक ही libcurl है।

0

विंडोज़ पर आप IWebBrowser2 इंटरफ़ेस का उपयोग कर आईई ड्राइव कर सकते हैं।

+0

मान्य, लेकिन उच्च प्रदर्शन आवश्यकताओं वाले लोगों के लिए ** ** वास्तव में ** धीमी समाधान। – Kiril

1

यदि यह विंडोज़ के लिए है, एक (WinHTTP)

http://msdn.microsoft.com/en-us/library/aa384273(VS.85).aspx विंडोज HTTP सेवा पर नज़र रखना

माइक्रोसॉफ्ट विंडोज HTTP सेवाएं (WinHTTP) एक HTTP क्लाइंट अनुप्रयोग प्रोग्रामिंग इंटरफेस के साथ डेवलपर्स प्रदान करता है (एपीआई) HTTP प्रोटोकॉल के माध्यम से अन्य HTTP सर्वर पर अनुरोध भेजने के लिए।

WinHTTP दोनों एक C/C++ एप्लीकेशन प्रोग्रामिंग इंटरफेस (एपीआई) और एक कंपोनेंट ऑब्जेक्ट मॉडल (COM) स्वचालन उपयुक्त सक्रिय सर्वर पृष्ठ (ASP) आधारित अनुप्रयोगों में प्रयोग के लिए घटक प्रदान करता है।

कुकीज़ के लिए http://msdn.microsoft.com/en-us/library/aa383261(VS.85).aspx

+0

आपके सुझाव के लिए धन्यवाद। यह सी ++ के बिना सादा सी है। मैं वास्तव में बजरने के कड़ी मेहनत (http://research.att.com/~bs) का उपयोग करना चाहता हूं। आवेदन प्रोग्रामिंग में सी का उपयोग करने के लिए अब कुछ वर्षों से इसे प्रतिबंधित किया जाना चाहिए :) –

2

आप WinInet

http://msdn.microsoft.com/en-us/library/aa385331(VS.85).aspx

कोशिश कर सकते हैं WinHTTP के विपरीत, इसे और अधिक क्लाइंट साइड उन्मुख है।

+0

आपके सुझाव के लिए धन्यवाद। इस प्रश्न पर WinHTTP उत्तर पर मेरी टिप्पणी पर एक नज़र डालें क्योंकि यह यहां भी लागू होता है। "// क्योंकि // कोई बफर आवंटित किया जाता है इस कॉल, पहली बार गुजरने पर असफल हो जायेगी। if (! HttpQueryInfo (hHttp, HTTP_QUERY_RAW_HEADERS_CRLF, (LPVOID) lpOutBuffer, और dwSize, शून्य))" उपयोग में आसानी के लिए " , WinINet इन प्रोटोकॉल को एक उच्च स्तरीय इंटरफ़ेस में सारणीबद्ध करता है। " उच्च स्तरीय इंटरफ़ेस? शायद यह 20 साल पहले उच्च स्तरीय इंटरफेस था ... –

+0

आप यूआरएल monikers भी देख सकते हैं: http://msdn.microsoft.com/en-us/library/ms774965(VS.85).aspx, यह WinInet (जैसा कि मुझे लगता है) पर निर्भर करता है, लेकिन इंटरफ़ेस की तरह COM प्रदान करता है। – Eugene

+0

@ पियेटर: अगर आपको लगता है कि WinHTTP खराब है, तो आप पर भरोसा करें, आप बिल्कुल * नफरत * WinInet ... यह एक आश्चर्यजनक रूप से असभ्य एपीआई है, भले ही आप सी पुस्तकालयों के साथ काम करने के लिए उपयोग किया जाता है। और इसका सबसे बुरा हिस्सा WinInet स्थिरांक और त्रुटियों है जो MSXML जैसे उच्च स्तरीय पुस्तकालयों के लिए "खून बह रहा" हो सकता है ... WinInet का बड़ा लाभ यह है कि यदि उपयोगकर्ता पहले से ही अपने खाते के लिए प्रॉक्सी सेटिंग्स कॉन्फ़िगर कर चुका है (व्यवस्थापक विकल्प या आईई/इंटरनेट विकल्प नियंत्रण कक्ष) तो WinInet स्वचालित रूप से उन्हें उठाएगा; अन्य पुस्तकालयों को स्पष्ट विन्यास की आवश्यकता हो सकती है। विंडोज़ केवल ... – Shog9

15

Poco Libraries पर एक नज़र डालें।

मैंने उनको उपयोग करना शुरू कर दिया क्योंकि वे पोर्टेबल हैं और यह काम करने में खुशी है। सरल और साफ - हालांकि इस पल के लिए मैंने कुछ भी कल्पना नहीं की है।

+3

पोको एक बहुत अच्छी लाइब्रेरी है कि मेरी राय में – jcoder

+0

एसएसएल समर्थन के साथ लगता है की तुलना में अधिक प्रचार का हकदार है! – nergeia

1

सभी विकल्प पुस्तकालय यदि आप जटिल http एपीआई की जरूरत है, कर्ल की कोशिश, अगर सिर्फ एक फ़ाइल प्राप्त करना चाहते हैं, http-छोटे कोशिश यहाँ उपलब्ध हैं

http://curl.haxx.se/libcurl/competitors.html

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

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