2009-05-04 14 views

Odpowiedz

23

Curl++: jest rozwiązaniem, szczególnie jeśli chcesz rzeczy bardziej stylu C++.

cpp-netlib: bardzo dobry i prosty w obsłudze, dostępny na ubuntu

sudo apt-get install libcppnetlib-dev 

przykład:

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

uszkodzone łącze (15 znaków) –

+0

Co to jest endingowa konwencja podkreślenia wskazać? – rbanffy

10

C++ (STL) nie posiada HTTP lub sieci bibliotek domyślnie będzie mieć zrobić z czymś innym.

libcurl powinien zrobić, co chcesz. cURL++ to ta sama biblioteka libcurl opakowana w błyszczące opakowanie w języku C++.

0

W systemie Windows można sterować IE przy użyciu interfejsu IWebBrowser2.

+0

Prawidłowe, ale ** naprawdę ** powolne rozwiązanie dla osób o wysokich wymaganiach dotyczących wydajności. – Kiril

1

Jeśli to dla okien, spojrzeć na usługi HTTP systemu Windows (WinHTTP)

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

Microsoft Windows HTTP Services (WinHTTP) zapewnia programistom programowania aplikacji klient HTTP interfejsu (API) do wysyłania żądań za pośrednictwem protokołu HTTP do innych serwerów HTTP .

WinHTTP oferuje zarówno interfejs programowania C/C++ aplikacja (API) oraz Component Object Model składnik (COM) automatyki odpowiedniego do stosowania w Active Server Pages (ASP) aplikacji opartych.

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

+0

Dzięki za sugestię. Jest to zwykły C bez żadnego z C++. Naprawdę chciałbym skorzystać z ciężkiej pracy Bjarne (http://research.att.com/~bs). Od kilku lat powinno być zabronione używanie C w programowaniu aplikacji :) –

2

Można spróbować WinInet

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

W przeciwieństwie do WinHTTP, to bardziej po stronie klienta zorientowanych.

+0

Dzięki za twoją sugestię. Spójrz na mój komentarz na temat odpowiedzi WinHTTP na to pytanie, ponieważ ma on również zastosowanie. "// To wywołanie nie powiedzie się na pierwszym przejeździe, ponieważ // bufor nie jest przydzielona. if (! HttpQueryInfo (hHttp, HTTP_QUERY_RAW_HEADERS_CRLF, (LPVOID) lpOutBuffer, & dwSize, NULL))" „Dla łatwości obsługi , WinINet zamienia te protokoły w interfejs wysokiego poziomu. " Interfejs wysokiego poziomu? Może to był interfejs wysokiego poziomu 20 lat temu ... –

+0

Możesz również spojrzeć na monikerów URL: http://msdn.microsoft.com/en-us/library/ms774965 (VS.85).aspx, opiera się na WinInet (jak sądzę), ale zapewnia interfejs podobny do COM. – Eugene

+0

@Piotr: Zaufaj mi, jeśli uważasz, że WinHTTP jest zły, absolutnie * Nienawidzisz * WinInet ... To zadziwiająco nieprzyjazny interfejs API, nawet jeśli jesteś przyzwyczajony do pracy z bibliotekami C. A najgorsze mogą być stałe i błędy WinInet, które "przenikają" do bibliotek wyższego poziomu, takich jak MSXML ... Dużą zaletą WinInet jest to, że jeśli użytkownik ma już skonfigurowane ustawienia proxy dla swojego konta (poprzez opcje administratora lub panel sterowania Opcje IE/Internet), a następnie WinInet wybierze je automatycznie; inne biblioteki mogą wymagać jawnej konfiguracji. Tylko Windows tylko ... – Shog9

15

Spójrz na Poco Libraries.

Zacząłem używać ich jako przenośnych i praca z nimi jest przyjemnością. Prosto i czysto - choć na razie nie nurkowałem w niczym wyjątkowym.

+3

Poco to bardzo fajna biblioteka, która moim zdaniem zasługuje na większą reklamę niż wydaje się uzyskać – jcoder

+0

Z obsługą SSL! – nergeia

Powiązane problemy