000
20.01.2008, 11:51 Uhr
BoBtheREapER
kein job für nen BoB
|
ich möchte eine Bild Datei z.B. das google Logo im gif Format öfnen und sie dann auf meiner HD speichern. Dazu erstelle ich mit der wininet API eine Verbindung über das http Protoll, lade mir die Daten runter und speichere sie. Für normale Text oder html Dateien funktioniert das ohne Probleme aber bei gif oder jpeg kommt nur Datenmüll rum.
C++: |
HINTERNET hConnect = InternetOpen("InetURL/1.0", INTERNET_OPEN_TYPE_PRECONFIG, NULL, NULL, 0); hConnect = InternetConnect(hConnect, "www.google.de", INTERNET_DEFAULT_HTTP_PORT, "ImageLoad", NULL, INTERNET_SERVICE_HTTP, NULL, NULL); const char* type = "image/gif"; HINTERNET hHttpRequest = HttpOpenRequest( hConnect, "GET", "/intl/de_de/images/logo.gif", "HTTP/1.1", NULL, &type, INTERNET_FLAG_KEEP_CONNECTION,0); file.open("google.gif", std::ios::binary | std::ios::out); if(!HttpSendRequest(hHttpRequest,NULL, NULL, NULL, NULL)) std::cout << GetLastError() << std::endl; else { DWORD avable; while(InternetQueryDataAvailable(hHttpRequest, &avable, 0, 0)) { char* buffer = (char*) malloc(avable + 1); DWORD end; InternetReadFile(hHttpRequest, buffer, avable, &end); if(end == 0) { break; } file << buffer; } } InternetCloseHandle(hHttpRequest); file.close();
|
Hat jemand eine Ahnung was ich falsch mache? -- "Zwei Dinge sind unendlich: Das Universum und die menschliche Dummheit. Aber beim Universum bin ich mir nicht ganz sicher." - Albert Einstein www.blue-xenon.de.vu Dieser Post wurde am 20.01.2008 um 11:53 Uhr von BoBtheREapER editiert. |