tutorials.de Buch-Aktion 05/2012
Like Tree1Danke
  • 1 Beitrag von deepthroat
ERLEDIGT
NEIN
ANTWORTEN
3
ZUGRIFFE
406
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Avatar von vfl_freak
    vfl_freak vfl_freak ist offline Mitglied Diamant
    Registriert seit
    Aug 2007
    Ort
    Niedersachsen
    Beiträge
    2.161
    Moin zusammen,

    ich stehe seit gestern vor einem Problem und weiß nicht so recht, wie ich es angehen kann ...

    Ich habe hier einen in VC++ 6.0 geschriebenen Server, der nun Daten von einem Webserver holen, indem ein php-Script aufgerufen wird.
    Dieses Script liefert mir (lt. Aussage des Seitenbetreibers) eine Textdatei im csv-Format, deren Inhalt der Server dann verarbeiten und in eine DB speichern soll.

    Ich habe neben der Beschreibung der Daten in dieser Schnittstelle lediglich die Webadresse und die Zugangsdaten.
    Hiermit wäre also ein Aufruf á la (https://username : password@www.xyz.com/..../csv.php möglich.

    Bei einem Browseraufruf sehe ich auch sofort die gewünschen Daten ... nur:
    wie veranstalte ich diesen Aufruf in meinem Server (d. h. mit C++)

    Ich kenne von Java die Klasse "URL", mit der ich (vermutlich) problemlos dieses php-Script aufrufen könnte. In der MFC bin ich nun auf Klassen wie "CInternetFile", "CInternetSession", "CInternetConnection" oder "CHttpFile" gestossen, ohne sie allerdings so richtig zu verstehen ...

    Baue ich zuerst eine Session und/oder Connection auf, um dann über CInternetFile das Ergebnis des php-Aufrufs empfangen zu können ?

    Ich bin bei dieser Thematik leider blutiger Anfänger und würde mich über einige Hinweise sehr freuen, die mir hier auf die Sprünge helfen können.

    Danke im voraus
    LG aus OS
    Klaus
     
    Es ist noch kein Meister vom Himmel gefallen - sonst hätte man schon längst seine Leiche gefunden !!

    Falls ich helfen konnte, wäre eine Bewertung oder ein Danke nett ;-)
    -------------------------------------------------------------------------------------------------
    Ich beantworte keine Fragen per PN !!
    Stellt Eure Fragen im Forum - dann haben alle etwas davon !!

  2. #2
    deepthroat deepthroat ist offline Mitglied Diamant
    tutorials.de Premium-User
    Registriert seit
    Jun 2005
    Beiträge
    8.169
    vfl_freak bedankt sich. 
    If at first you don't succeed, try again. Then quit. No use being a damn fool about it.

  3. #3
    Avatar von vfl_freak
    vfl_freak vfl_freak ist offline Mitglied Diamant
    Registriert seit
    Aug 2007
    Ort
    Niedersachsen
    Beiträge
    2.161
    Moin deepthroat,

    erstmal Danke für den Link, wenngleich ich dort auch schon rumgeturnt war ...

    Dabei war mir aufgefallen, dass dort als DeviceType lediglich INTERNET_SERVICE_HTTP aufgeführt ist und ich mich gefragt habe, ob es dann auch für https gilt ?

    Habe jetzt dort gerade über Deinen Link den Eintrag
    Code :
    1
    
    INTERNET_DEFAULT_HTTPS_PORT Uses the default port for Secure Hypertext Transfer Protocol (HTTPS) servers (port 443).
    gefunden, den ich dann in den mir aus der VS-Hilfe vorliegenden Beispielen vermutlich als Port beim "GetHTTPConnect" übergeben kann ....

    Na, dass ist doch mal ein Ansatz, mit dem man arbeiten kann

    Danke und Gruß
    Klaus
     
    Es ist noch kein Meister vom Himmel gefallen - sonst hätte man schon längst seine Leiche gefunden !!

    Falls ich helfen konnte, wäre eine Bewertung oder ein Danke nett ;-)
    -------------------------------------------------------------------------------------------------
    Ich beantworte keine Fragen per PN !!
    Stellt Eure Fragen im Forum - dann haben alle etwas davon !!

  4. #4
    Avatar von vfl_freak
    vfl_freak vfl_freak ist offline Mitglied Diamant
    Registriert seit
    Aug 2007
    Ort
    Niedersachsen
    Beiträge
    2.161
    Moin,

    ja, ich habe jetzt längere Zeit rum experimentiert und bekomme in der Tat Probleme mit dem "HTTPS".

    Übertrage ich die URL in der Form
    "_http_:_//_username_:_password[at]www[dot]xyz[dot]com/..../abc[dot]php"
    bekomme ich zwar Kontakt mit dem Server, jedoch die Meldung zurück, dass entweder User pder PW abgelehnt wurden!

    Übertrage ich jedoch mit HTTPS, dann liefert mir der Servicetyp einen Fehler.

    Hier mal der Code, den ich aus Beispielen aus der Hilfe entwickelt habe:
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    
    string CHTTPZugriff::fGetPNWDataAll( )
    {
        // natürlich OHNE die Unterstriche
        LPCTSTR  pszURL = "_http_:_//_username_:_password[at]www[dot]xyz[dot]com/..../abc[dot]php";
        string strResult = "";
     
        DWORD dwHttpRequestFlags = INTERNET_FLAG_EXISTING_CONNECT | INTERNET_FLAG_NO_AUTO_REDIRECT;
     
        CInternetSession session;
        CHttpConnection* pServer = NULL;
        CHttpFile* pFile = NULL;
     
        try
        {
            // Überprüfung, ob es sich um eine sinnvolle URL handelt
            CString strServerName;
            CString strObject;
            INTERNET_PORT nPort;
            DWORD dwServiceType;
     
            if( !AfxParseURL(pszURL, dwServiceType, strServerName, strObject, nPort) )
            {
                TRACE ("AfxParseURL fehlgeschlagen: %s / %s \n", strServerName, pszURL );
            }
     
            if( dwServiceType != INTERNET_SERVICE_HTTP )
            {
                TRACE ("dwServiceType fehlgeschlagen: %ld \n", dwServiceType );
            }
     
            pServer = session.GetHttpConnection( strServerName, nPort );
            pFile = pServer->OpenRequest( CHttpConnection::HTTP_VERB_GET,strObject, NULL, 1, NULL, NULL, dwHttpRequestFlags );
            pFile->SendRequest();
     
            TCHAR sz[1024];
            while( pFile->ReadString(sz, 1023) )
            {
                CStringUtils::strrtrim( sz );
                strResult += string( sz );
            }
     
            pFile->Close();
            pServer->Close();
        }
        catch (CInternetException* pEx)
        {
            // Abfangen von WinInet Fehlern
            TCHAR szErr[1024];
            pEx->GetErrorMessage(szErr, 1024);
            TRACE( "ErrorMSG: <%s>)\n", szErr );
            TRACE( "Error: Exiting with CInternetException(%d)\n", pEx->m_dwError );
            pEx->Delete();
        }
     
        if( pFile != NULL )
        {
            delete pFile;
        }
        if( pServer != NULL )
        {
            delete pServer;
        }
     
        session.Close();
     
        TRACE("*** sizeof strResult=<%ld>\n", strResult.length() );
     
        return strResult;
     
    } // fGetPNWDataAll

    Die konkreten Daten in der Webadresse musste ich aus Datenschutzgründen natürlich anonymisieren!

    Habe ich da in der V6.0 u. U. ein generelles Problem?

    Danke und Gruß
    Klaus
     
    Es ist noch kein Meister vom Himmel gefallen - sonst hätte man schon längst seine Leiche gefunden !!

    Falls ich helfen konnte, wäre eine Bewertung oder ein Danke nett ;-)
    -------------------------------------------------------------------------------------------------
    Ich beantworte keine Fragen per PN !!
    Stellt Eure Fragen im Forum - dann haben alle etwas davon !!

Ähnliche Themen

  1. Antworten: 8
    Letzter Beitrag: 14.12.09, 15:43
  2. Antworten: 3
    Letzter Beitrag: 09.04.09, 16:08
  3. IBM Artikel zu den Features der dynamischen Script Sprache Java Script
    Von Thomas Darimont im Forum Javascript & Ajax
    Antworten: 0
    Letzter Beitrag: 20.12.06, 23:45
  4. Script für Serverzugriff?
    Von paulee im Forum PHP
    Antworten: 7
    Letzter Beitrag: 21.06.06, 03:33
  5. Serverzugriff
    Von sisela im Forum Hosting & Webserver
    Antworten: 12
    Letzter Beitrag: 15.07.05, 09:46