2009-05-04 16 views

Respuesta

23

Curl++: es una opción, sobre todo si quieres que las cosas en más de un estilo C++.

cpp-netlib: muy bueno y fácil de usar, disponible en ubuntu

sudo apt-get install libcppnetlib-dev 

ejemplo:

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

enlace roto (15 caracteres) –

+0

¿Qué significa la convención de subrayado final? ¿indicar? – rbanffy

10

C++ (STL) no tiene una biblioteca de HTTP o red por defecto, se tendrá para hacer con otra cosa.

libcurl debe hacer lo que desee. cURL++ es el mismo libcurl envuelto en un contenedor brillante de C++.

0

En Windows puede conducir IE usando la interfaz IWebBrowser2.

+0

Válido, pero una solución ** realmente ** lenta para aquellos con requisitos de alto rendimiento. – Kiril

1

Si es para ventanas, echar un vistazo a los servicios HTTP de Windows (WinHTTP)

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

Microsoft Windows HTTP Servicios (WinHTTP) ofrece a los desarrolladores una interfaz de programación de aplicaciones cliente HTTP (API) para enviar solicitudes a través del protocolo HTTP a otros servidores HTTP .

WinHTTP ofrece una interfaz de programación C/C++ aplicación (API) y un componente de modelo de objetos componentes (COM) de automatización adecuada para su uso en páginas Active Server (ASP) aplicaciones basadas.

para las galletas http://msdn.microsoft.com/en-us/library/aa383261(VS.85).aspx

+0

Gracias por su sugerencia. Es simple C sin C++ allí. Realmente me gustaría hacer uso del arduo trabajo de Bjarne (http://research.att.com/~bs). Debería estar prohibido por un par de años usar C en la programación de aplicaciones :) –

2

Usted puede tratar de WinInet

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

En contraste con WinHTTP, que está más orientado del lado del cliente.

+0

Gracias por su sugerencia. Eche un vistazo a mi comentario sobre la respuesta de WinHTTP en esta pregunta, ya que se aplica aquí también. "// Esta llamada fallará en la primera pasada, porque // se asigna ninguna memoria intermedia. if (! HttpQueryInfo (hhttp, HTTP_QUERY_RAW_HEADERS_CRLF, (LPVOID) lpOutBuffer, y dwSize, NULL))" "Para facilitar su uso , WinINet abstrae estos protocolos en una interfaz de alto nivel ". Interfaz de alto nivel? Tal vez fue la interfaz de alto nivel hace 20 años ... –

+0

También puede consultar URL monikers: http://msdn.microsoft.com/en-us/library/ms774965(VS.85).aspx, depende de WinInet (como creo), pero proporciona COM como interfaz. – Eugene

+0

@Piotr: confía en mí, si crees que WinHTTP es malo, estarás absolutamente * ODIO * WinInet ... Es una API increíblemente hostil, incluso si estás acostumbrado a trabajar con bibliotecas C. Y la peor parte pueden ser las constantes y los errores de WinInet que "sangran" a bibliotecas de nivel superior como MSXML ... La gran ventaja de WinInet es que si un usuario ya ha configurado el proxy para su cuenta (a través del opciones de administrador o el panel de control de IE/Opciones de Internet) entonces WinInet los recogerá automáticamente; otras bibliotecas pueden necesitar una configuración explícita. Sólo Windows ... – Shog9

15

Eche un vistazo a Poco Libraries.

Comencé a usarlos ya que son portátiles y es un placer trabajar con ellos. Simple y limpio, aunque no he buceado en nada elegante por el momento.

+3

Poco es una biblioteca muy agradable que, en mi opinión, merece más publicidad de la que parece obtener – jcoder

+0

¡Con soporte SSL! – nergeia

Cuestiones relacionadas