Win32

2009-07-10 10 views
11

पर HTTP क्लाइंट उदाहरण मैं Win32 प्लेटफॉर्म पर एक HTTP उदाहरण विकसित करना चाहता था, जो असीमित है।Win32

मैं Win32 प्रोग्रामिंग करने के लिए नया हूँ, मुझे पता है क्या कर सकते हैं एपीआई और पुस्तकालय Win32 मंच

HTTP के लिए प्रदान करता हैं भेजने के लिए और अनुरोध प्राप्त करते हैं।

मैं वी.एस. 2005

साथ Windows XP का उपयोग कर रहा है, तो किसी भी उदाहरण नेट पर सीधे उपलब्ध है कृपया, मुझे इससे जुड़े हों प्रदान

संबंध

विनायक karjigi

+0

यह [आलेख] (http://albertech.blogspot.com/2015/06/a-c-function-that-handles-http-get-and.html) एक ऐसा फ़ंक्शन दिखाता है जो GET और POST को संभालता है। – jar

उत्तर

6

आप WinHTTP पुस्तकालय का उपयोग कर सकते "माइक्रोसॉफ्ट इंटरनेट सूचना सर्वर (IIS) का उपयोग किए बिना HTTP पर बातचीत करने के लिए अनुप्रयोगों को सक्षम"। Here असिंक्रोनस पूर्णता पर एक नमूना है।

+0

लिंक के लिए धन्यवाद, यह मेरे लिए अधिक उपयोग होगा मुझे लगता है कि –

10

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

HTTP Server API

+0

लिंक और जानकारी के लिए धन्यवाद, यह मेरे लिए अधिक उपयोग होगा, मुझे लगता है कि –

2

Boost Asio एक अच्छा सिंक्रोनस/एसिंक्रोनस लाइब्रेरी है जिसमें आपके पास HTTP सर्वर/क्लाइंट के लिए आवश्यक सब कुछ है। इसमें HTTP सर्वर, और प्रासंगिक क्लाइंट पर कुछ व्यापक उदाहरण हैं। अब यदि आप सामान्य रूप से सी ++ के लिए नए हैं तो यह पुस्तकालय थोड़ा सा गूढ़ हो सकता है। यदि आप स्क्रैच दृष्टिकोण से अधिक चाहते हैं तो आप हमेशा एमएसडीएन पर एक नज़र डाल सकते हैं।

+0

boost.asio आपके द्वारा अपने स्वयं के http अनुरोधों को तैयार करने के लिए एक तंत्र प्रदान करता है हाथ; विंडोज़ http सेवाएं आपके लिए प्रोटोकॉल को समाहित करती हैं। –

3

आम तौर पर मैं कुछ क्रॉस-प्लेटफ़ॉर्म जैसे curl, POCO, Qt, या Asio (सुंदर आधुनिक और अच्छा) की अनुशंसा करता हूं। हालांकि, यहां IXMLHTTPRequest का उपयोग कर एक Windows उदाहरण है:

// TODO: error handling 

#include <atlbase.h> 
#include <msxml6.h> 

HRESULT hr; 
CComPtr<IXMLHTTPRequest> request; 

hr = request.CoCreateInstance(CLSID_XMLHTTP60); 
hr = request->open(
    _bstr_t("GET"), 
    _bstr_t("https://www.google.com/images/srpr/logo11w.png"), 
    _variant_t(VARIANT_FALSE), 
    _variant_t(), 
    _variant_t()); 
hr = request->send(_variant_t()); 

// get status - 200 if succuss 
long status; 
hr = request->get_status(&status); 

// load image data (if url points to an image) 
VARIANT responseVariant; 
hr = request->get_responseStream(&responseVariant); 
IStream* stream = (IStream*)responseVariant.punkVal; 
CImage image = new CImage(); 
image->Load(stream); 
stream->Release(); 
+1

क्या आप जानते हैं कि सॉफ़्टवेयर का कौन सा टुकड़ा IXMLHTTPRequest को COM क्लास के रूप में आपूर्ति करता है? इंटरनेट एक्स्प्लोरर? –

+2

मेरा मानना ​​है कि यह एमएसएक्सएमएल एसडीके का हिस्सा है, जो विंडोज के लिए लाइब्रेरी दिखता है: https://msdn.microsoft.com/en-us/library/ms753804(v=vs.85).aspx –

0

यह एक उदाहरण है

POSIX और विनसॉक सॉकेट के लिए

https://github.com/pedro-vicente/lib_netsockets

एक C++ प्रकाश आवरण

यह का उपयोग करता है HTTP GET एक पुनः प्राप्त करने के वेब सर्वर से फ़ाइल, सर्वर और फ़ाइल दोनों कमांड लाइन पैरामीटर हैं। दूरस्थ फ़ाइल को स्थानीय प्रतिलिपि में सहेजा जाता है।

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