B
Hallo,
vielen Dank für die Antworten!
ASIO klingt sehr interessant, allerdings ist's doch ganz schön aufwendig, einen einfachen HTTP-Client zu schreiben:
http://www.boost.org/doc/libs/1_38_0/doc/html/boost_asio/example/http/client/sync_client.cpp
Ich würde mir etwas objektorientierteres wünschen. Für Windows scheint es WinInet zu geben, da sieht sowas dann so aus:
#include <wininet.h>
HINTERNET inet = InternetOpen("MyAgent", INTERNET_OPEN_TYPE_PRECONFIG, NULL, NULL, 0);
HINTERNET connection;
HINTERNET request;
unsigned long flags;
unsigned long len;
connection = InternetConnect(inet, TEXT(domainurl), INTERNET_DEFAULT_HTTP_PORT, NULL, NULL, INTERNET_SERVICE_HTTP, 0, 1);
flags = INTERNET_FLAG_PRAGMA_NOCACHE;
request = HttpOpenRequest(connection, "POST", TEXT(scripturl), NULL, NULL, NULL, flags, 1);
HttpSendRequest(request, "Content-Type: application/x-www-form-urlencoded", 47, (void*)stringtosend, strlen(stringtosend));
std::stringstream CompleteBuffer;
do {
char antwortbuffer[10000];
InternetReadFile(request, antwortbuffer, sizeof antwortbuffer, &len);
antwortbuffer[len] = '\0';
CompleteBuffer << antwortbuffer;
} while(len);
InternetCloseHandle(request);
InternetCloseHandle(connection);
InternetCloseHandle(inet);
MessageBox(NULL, CompleteBuffer.str().c_str(), "Server Antwort", MB_OK);
Gibt es so etwas auch für eine Linuxumgebung?
Noch eine Frage: Ist die Menge der "Stanard-C++-Bibliotheken" fest definiert? Es hieß, dass ich mich nur in dem Pool der Standard-C++-Bibliotheken bedienen soll. Was wäre unter der Voraussetzung der "highest-level"-Weg, um meinen HTTP-Request zu senden? Über C-Sockets?
Nochmals vielen Dank und viele Grüße
bibe