http request senden

SunnyBunny

Mitglied
Hallo ich möchte über mein Programm (mfc 6,c++, visual studio 6.0) eine http request senden der ca. so aussieht:

Beispiel:
Code:
http://www.sms77.de/gateway/?u=benut...09876543&text=meine%20erste%20nachricht&type=quality&from=sms77. de

Damit versende ich dann SMs.

Ich habe CInternetSession benutzt und dann CHttpConnection, anschließend OpenRequest und dort das Beipsiel oben(natürlich mit Parametern) rein. Es wird aber nicht gesendet

Hat wer nen Tipp?

Irgendwie habe ich keine Ahnugn wie ich bei OpneRequest Rückgabewert prüfen soll.
Wenn ich den Request direkt in den IE eingebe so wie er in meine Programm steht, funktioniert es, aber mit dem Programm nicht :(

Hier mal mein Code

Code:
CInternetSession* meineSession;
	try
	{
		meineSession = new CInternetSession();
	}
	catch(CInternetException* e)
	{
		e->ReportError();
		e->Delete();
		AfxMessageBox("CInternetException konnte nicht gestartet werden.(1)");
		PostQuitMessage(0);
	}
	
	CHttpConnection* meineHttpCon;
	meineHttpCon = meineSession->GetHttpConnection("https://www.sms77.de");
	if(meineHttpCon == NULL)
	{
		AfxMessageBox("CHttpConnection konnte nicht gestartet werden.(2)");
		PostQuitMessage(0);
	}
	
	meineHttpCon->OpenRequest(0,"http://www.sms77.de/gateway/?u=benut...09876543&text=meine%20erste%20nachricht&type=quality&from=sms77. de");
 
Ich machs wie folgt(gekürzt):
Code:
DWORD nStatusCode;
CHttpFile *pHttpFile=NULL;
pHttpFile=meineHttpCon->OpenRequest(0,"http://www.sms77.de/gateway/?u=benut...09876543&text=meine%20erste%20nachricht&type=quality&from=sms77. de");
pHttpFile->SendRequest();

if(pHttpFile->QueryInfoStatusCode(nStatusCode)&&nStatusCode<400)
{
//Hier dann weiter im Text
}
So kannste das überprüfen. Der StatusCode muss kleiner als 400 sein, da alles andere einen Fehler bedeutet. Die genaueren Fehler Codes kannste googlen. So ist z.B. 404 Datei kann nicht gefunden werden. Ich hoffe das wars was gesucht war.
 
Zuletzt bearbeitet:
Jo hi auch,

hier mal meine Variante, wie ich solche Augaben erledige. Vielleicht passt es dir ja auch so ;-)

Code:
    CString inetResult = "";
    char	        buff[512];
    HINTERNET hInet = InternetOpen(L"MyInetConn", INTERNET_OPEN_TYPE_DIRECT, NULL, NULL, 0 );
    CString httpCall = "http://www.myPage.de/myFunc.php?val1=1&val2=2";
    HINTERNET hFile = InternetOpenUrl(hInet, httpCall, NULL, 0, INTERNET_FLAG_KEEP_CONNECTION| INTERNET_FLAG_PRAGMA_NOCACHE | INTERNET_FLAG_RELOAD, 0 );
    if( hFIle != INVALID_HANDLE_VALUE ) {
        while( InternetReadFile(hFile, buff, 511, &charsRead ) && charsRead > 0) {
            buff[charsRead] = '\0';
            inetResult += buff;
        }
        InternetCloseHandle(hFile);
        // In der Variablen inetResult hast du nun den gesamten HTTP-Response drin,
        // Wie du den parst weisst du hoffentlich ;-)
    }
    InternetCloseHandle(hInet);

Habe auf die Art schon den einen oder anderen Internet-Crawler geschrieben ;-) Funktioniert prächtig !

Viel Spaß und Erfolg,

Pit
 
Zurück