Ответ 1
Вы можете использовать библиотеку WinHTTP. Здесь - образец асинхронного завершения.
Я хотел разработать один пример HTTP на платформе win32, который является асинхронным.
Я новичок в программировании win32, могу ли я узнать, что такое платформа api и library win32.
предоставляет HTTP-запрос на отправку и получение.
Я использую windows xp с VS 2005.
Если какой-либо пример доступен прямо в сети, укажите мне ссылку на него,
в отношении Vinayaka karjigi
Вы можете использовать библиотеку WinHTTP. Здесь - образец асинхронного завершения.
Window HTTP Services "предоставляет разработчикам API-интерфейс прикладного программирования HTTP (API) для отправки запросов по протоколу HTTP другим HTTP-серверам."
API HTTP Server "позволяет приложениям обмениваться данными через HTTP без использования Microsoft Internet Information Server (IIS)"
В общем, я бы рекомендовал нечто кросс-платформенное, например cURL, POCO, Qt или Asio (довольно современный и приятный). Однако здесь приведен пример Windows с помощью IXMLHTTPRequest
:
// 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();
Boost Asio - хорошая синхронная/асинхронная библиотека, в которой есть все необходимое для HTTP-серверов/клиентов. Он содержит несколько обширных примеров на серверах HTTP и соответствующих клиентах. Теперь, если вы новичок в С++, эта библиотека может быть немного загадочной. Вы всегда можете взглянуть на MSDN, если хотите больше с нуля.
Это пример
https://github.com/pedro-vicente/lib_netsockets
Световая оболочка С++ для сокетов POSIX и Winsock
Он использует HTTP GET для извлечения файла с веб-сервера, а сервер и файл - это параметры командной строки. Удаленный файл сохраняется в локальной копии.