HTTP Client
-
Hi habe gerade probiert ein simples Programm (als Einstieg) zu schreiben das sich über das HTTP Protokoll mit einem InternetServer verbindet und sich wieder beendet. Obwohl es einen Fehler in der HttpSendRequest() Funktion verwendet, habe ich es auf einer Seite mit einem Counter ausprobiert und es hat wie erwartet keine Wirkung gezeigt. Der Fehler der HttpSendRequest() Funktion, mittels GetLasError() ermittelt ist 997, allerdings kann ich mit der Beschreibung des Fehlers in der MSDN nicht mein Problem beheben. Hier ist der Code.
DWORD cont = 5, contt = 6; HINTERNET hInt = InternetOpen("Besucher", INTERNET_OPEN_TYPE_DIRECT, NULL, NULL, INTERNET_FLAG_ASYNC); if(hInt == NULL) cout<<"InternetOpen() fehlgeschlagen."<<endl; HINTERNET hCon = InternetConnect(hInt, "www.google.de", INTERNET_DEFAULT_HTTP_PORT, NULL, NULL, INTERNET_SERVICE_HTTP, INTERNET_FLAG_NO_COOKIES, cont); if(hCon == NULL) cout<<"InternetConnect() fehlgeschlagen."<<endl; HINTERNET hHttp = HttpOpenRequest(hCon, NULL, NULL, NULL, NULL, NULL, NULL, contt); if(hHttp == NULL) cout<<"HttpOpenRequest() fehlgeschlagen."<<endl; bool hSend = HttpSendRequest(hHttp, NULL, NULL, NULL, 0); if(!hSend) cout<<"HttpSendRequest() fehlgeschlagen."<<endl; cout<<GetLastError()<<endl; InternetCloseHandle(hCon); InternetCloseHandle(hInt);
-
Du hast ja auch eine asynchrone Session erstellt. Fehlercode 997 ist nix anderes als "Overlapped I/O operation is in progress.", also verläuft alles ordnungsgemäß. Du mußt entweder irgendwo eine Callback funktion angeben oder du lässt halt das INTERNET_FLAG_ASYNC Flag bei InternetOpen() weg.
-
danke funktioniert jetzt.