Пример HTTP-клиента на win32 - PullRequest
12 голосов
/ 10 июля 2009

Я хотел разработать один пример HTTP на платформе win32, который будет асинхронным.

Я новичок в программировании на win32. Какие платформы API и библиотеки win32 предусмотрены для отправки и получения HTTP-запросов? Я использую Windows XP с VS 2005.

Если есть пример, укажите ссылку на него.

Ответы [ 5 ]

11 голосов
/ 10 июля 2009

Window HTTP Services"предоставляет разработчикам клиентский интерфейс прикладного программирования (API) клиента HTTP для отправки запросов по протоколу HTTP на другие серверы HTTP."

HTTP-сервер API"позволяет приложениям обмениваться данными через HTTP без использования Microsoft Internet Information Server (IIS)"

7 голосов
/ 10 июля 2009

Вы можете использовать библиотеку WinHTTP. Здесь - пример асинхронного завершения.

4 голосов
/ 12 февраля 2014

Обычно я бы рекомендовал что-нибудь кроссплатформенное, например 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();
2 голосов
/ 10 июля 2009

Boost Asio - это хорошая синхронная / асинхронная библиотека, в которой есть все необходимое для HTTP-серверов / клиентов Он содержит несколько обширных примеров на HTTP-серверах и соответствующих клиентах. Теперь, если вы новичок в C ++, эта библиотека может быть немного загадочной. Вы всегда можете взглянуть на MSDN, если вы хотите больше с нуля.

0 голосов
/ 15 августа 2016

Это пример

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

Легкая оболочка C ++ для POSIX и Winsock

Он использует HTTP GET для получения файла с веб-сервера, и сервер, и файл являются параметрами командной строки. Удаленный файл сохраняется в локальной копии.

...