tutorials.de Buch-Aktion 05/2012
ERLEDIGT
JA
ANTWORTEN
2
ZUGRIFFE
3204
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Avatar von SunnyBunny
    SunnyBunny SunnyBunny ist offline Mitglied Silber
    Registriert seit
    May 2006
    Beiträge
    78
    Hallo ich möchte über mein Programm (mfc 6,c++, visual studio 6.0) eine http request senden der ca. so aussieht:

    Beispiel:
    Code :
    1
    
    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 :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    
    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");
     

  2. #2
    Avatar von SCIPIO-AEMILIANUS
    SCIPIO-AEMILIANUS SCIPIO-AEMILIANUS ist offline aka DonMahallem
    Registriert seit
    Mar 2007
    Ort
    Saxonburg(Pa)
    Beiträge
    375
    Ich machs wie folgt(gekürzt):
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    
    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.
    Geändert von SCIPIO-AEMILIANUS (08.11.08 um 17:21 Uhr) Grund: Ich bemerke grad das Thema schon alt ist, naja egal hilfts vllt wem anders.
     
    MFG Scipio
    Ein Danke für hilfreiche Antworten ist gern gesehen.

  3. #3
    Avatar von pschilling
    pschilling pschilling ist offline Mitglied Gold
    Registriert seit
    Apr 2007
    Ort
    Duisburg (NRW)
    Beiträge
    192
    Jo hi auch,

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

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    
        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
     
    Der Computer wird das tun, was du programmierst - nicht das, was du willst ;-)

Ähnliche Themen

  1. HTTP-Request mit QT
    Von cesupa im Forum C/C++
    Antworten: 3
    Letzter Beitrag: 22.02.08, 19:25
  2. HTTP Request
    Von MagicEpox im Forum Sonstige Sprachen
    Antworten: 2
    Letzter Beitrag: 02.08.07, 14:08
  3. Http Request
    Von NanoNuna im Forum PHP
    Antworten: 2
    Letzter Beitrag: 02.04.07, 10:55
  4. HTTP Request
    Von e2r im Forum CGI, Perl, Python, Ruby, Power Shell
    Antworten: 2
    Letzter Beitrag: 07.02.07, 18:38
  5. Http - Request
    Von rauchmelder im Forum .NET Archiv
    Antworten: 2
    Letzter Beitrag: 04.12.04, 22:42