007
13.10.2005, 10:40 Uhr
ray_ray
|
ich hab jetzt auch probiert das ganze mit InternetOpen(), InternetConnect(), HttpOpenRequest() und HttpSendRequest() umzusetzen. der macht das auch alles nur versendet der nicht.
das problem sollte in meiner Request(), genauer in dem teil mit HttpSendRequest() sein, da Connect() ja korrekterweise true zurückliefert. weiß einer von euch warum? hier der qt:
C++: |
/* INFORMATIONEN ZUM PROGRAMM: * * * * * * * * * * * * * * * * * * * * * * * * * * Sinn und Zweck: * ============== * Verbindung zu entferntem Server um Datei anzusprechen * * Hilfe, Tutorials, MSDN, etc.: * ========================= * RFC zu HTTP >>>>> www.faqs.org/rfcs/rfc2616.html * CodingCommunity >>>>> www.codingcommunity.de/wbb2/thread.php?postid=17671#post17671 * C-PlusPlus.de Forum >>>>> www.c-plusplus.de/forum/viewtopic-var-p-is-890601.html#890601 * C++ Forum >>>>> www.fun-soft.de/showtopic.php?threadid=12887&post_start=lastpage&time=1129121979 * Socket Tutorial >>>>> http://beej.us/guide/bgnet/output/htmlsingle/bgnet.html#sendrecv * * Einbinden in Günthers Programm: * ============================ * Ausgaben entfernen & Zielserver, Verzeichnisstruktur, etc. im Konstruktor statisch festlegen */
#include <iostream> #include <string> #include <stdlib.h> using namespace std; #include <wininet.h>
// // CHttpRequest // class CHttpRequest { private: string m_strServer; // Zielserver string m_strTargetFolder; // Zielverzeichnis & -datei HINTERNET m_hInetOpen; // Return von InternetOpen() HINTERNET m_hInetConnect; // Return von InternetConnect() HINTERNET m_hInetOpenRequest; // Return von HttpOpenRequest()
public: // // Konstruktor // CHttpRequest( void ) { this->m_strServer = "www.futures-net.de"; this->m_strTargetFolder = "/content/news/index.php"; } CHttpRequest( string strServer, string strTargetFolder ) { this->m_strServer = strServer; this->m_strTargetFolder = strTargetFolder; }
// // Destruktor // ~CHttpRequest( void ) { }
// // Verbindung herstellen // bool Connect( void ) { this->m_hInetOpen = InternetOpen( "IG App", INTERNET_OPEN_TYPE_DIRECT, NULL, NULL, INTERNET_FLAG_ASYNC ); this->m_hInetConnect = InternetConnect( this->m_hInetOpen, this->m_strServer.c_str(), INTERNET_DEFAULT_HTTP_PORT, "User", "", INTERNET_SERVICE_HTTP, INTERNET_FLAG_PASSIVE, 0); if( this->m_hInetOpen != NULL && this->m_hInetConnect != NULL ) return true; }
// // Request // bool Request( void ) { // HTTP Request this->m_hInetOpenRequest = HttpOpenRequest( this->m_hInetConnect, NULL, this->m_strTargetFolder.c_str(), NULL, NULL, NULL, INTERNET_FLAG_KEEP_CONNECTION, 0 ); if( this->m_hInetOpenRequest != NULL ) { if( true == HttpSendRequest( this->m_hInetOpenRequest, NULL, 0, NULL, 0 ) ) { return true; } else cout << "FEHLER BEIM SENDEN"; } else return false; }
};
// // Main // int main( void ) { CHttpRequest HttpRequest; if( true == HttpRequest.Connect() ) { cout << endl << " Connect successful"; if( true == HttpRequest.Request() ) cout << endl << " Request successful"; else cout << endl << " Request failed"; } else cout << endl << " Connect failed";
// Programmende cout << endl << endl << " "; system( "pause" ); return 0; }
|
Dieser Post wurde am 13.10.2005 um 10:51 Uhr von ray_ray editiert. |