tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
2
ZUGRIFFE
1606
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Thomasio Thomasio ist offline Mitglied Platin
    Registriert seit
    Aug 2006
    Beiträge
    680
    Meine allerersten Versuche mit WinInet schauen nicht besonders rosig aus, aber vielleicht kann mir ja hier jemand helfen
    Ich sag gleich zu Anfang nochmal dazu, ich mache das nur zum lernen, ohne echten Zweck

    Was ich gemacht habe ist eine Mini Anwendung, die via WinInet ein php Script auf meiner hp aufruft
    Das Script liest aus einer MySQL Datenbank ein Textfeld und gibt den Inhalt völlig unformatiert zurück, kein html, kein gar nichts, einfach Text, und weils wirklich nur zum testen ist, habe ich einfach selbst einen Text in das Datenbankfeld geschrieben, der wirklich ausschliesslich Buschstaben und Zahlen enthält, keine Zeilenumbrüche, keine Sonderzeichen
    Die Anwendung zeigt dann den Text einfach in einem edit Feld an

    Das Ganze funktioniert zuerst mal, mit einem kleinen Problem
    WENN der Text länger als 1293 Zeichen wird, dann zeigt er bei mir immer noch alles richtig an, aber bei einem Kumpel von mir nur die ersten 1293 Zeichen

    Ganz offensichtlich liegt das irgendwie an Paketgrössen und/oder Cache, aber ich finde nicht heraus, wie ich meine Anwendung dazu bringe es auch bei meinem Kumpel richtig anzuzeigen
    Ich habe schon mit den flags herum experimentiert
    INTERNET_FLAG_PRAGMA_NOCACHE | INTERNET_FLAG_RELOAD | INTERNET_FLAG_NO_CACHE_WRITE
    usw.
    aber das Richtige habe ich nicht gefunden, zumindest funktioniert es bei mir immer und bei meinem Kumpel nur bis zu 1293 byte, egal was ich an flags setze

    Hat jemand einen Tipp?
     

  2. #2
    Avatar von Endurion
    Endurion Endurion ist offline Mitglied Diamant
    Registriert seit
    Apr 2004
    Beiträge
    2.151
    Mit welcher Methode rufst du die URL auf? Per POST oder GET? Bei GET ist die Länge der URL teilweise begrenzt. Bei POST muss man evtl. Parameter in den Body packen, aber dafür ist die Länge unbegrenzt.
     

  3. #3
    Thomasio Thomasio ist offline Mitglied Platin
    Registriert seit
    Aug 2006
    Beiträge
    680
    Was ich mache ist (Errorhandling lasse ich mal weg wegen der Übersicht)

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    
    static TCHAR hdrs[]    = TEXT("Content-Type: application/x-www-form-urlencoded");
    HINTERNET inet = InternetOpen("MyAgent", INTERNET_OPEN_TYPE_PRECONFIG, NULL, NULL, 0);
    HINTERNET connection;
    HINTERNET request;
    unsigned long flags;
    char antwortbuffer[10000];
    unsigned long len;
    connection = InternetConnect(inet, TEXT(domainurl), INTERNET_DEFAULT_HTTP_PORT, NULL, NULL, INTERNET_SERVICE_HTTP, 0, 1);
    flags = INTERNET_FLAG_PRAGMA_NOCACHE;
    request = HttpOpenRequest(connection, "POST", TEXT(scriptname), NULL, NULL, NULL, flags, 1);
    HttpSendRequest(request, hdrs, strlen(hdrs), "whatever I want to Post", strlen("whatever I want to Post"));
    InternetReadFile(request, antwortbuffer, sizeof antwortbuffer, &len);
    antwortbuffer[len] = '\0';
    InternetCloseHandle(request);
    InternetCloseHandle(connection);
    InternetCloseHandle(inet);

    Ich habe damit herum experimentiert, ich kann cookies setzen, alles mögliche POSTen, und der Server antwortet darauf, als ob ein Browser das Script aufgerufen hätte
    Nur wenn die Antwort länger als 1293 Byte wird gibt es bei manchen Usern Murks
    Ich habe bei MSDN eine Anmerkung gefunden, um unvollständige Buffer zu vermeiden muss man InternetReadFile wiederholen, bis TRUE ist, aber ich habe nicht herausgefunden, warum das nur manchmal unvollständig ist und meine bescheidenen Anfänger Kenntnisse reichen nicht, um das Ganze in eine Schleife zu packen wo die Daten vom Server häppchenweise zusammengestückelt werden
     

Ähnliche Themen

  1. UNICODE über WinInet senden
    Von Thomasio im Forum C/C++
    Antworten: 0
    Letzter Beitrag: 25.12.08, 17:36
  2. WinInet: Daten werden nicht immer empfangen
    Von dadevelopa im Forum VisualStudio & MFC
    Antworten: 0
    Letzter Beitrag: 16.07.07, 09:12
  3. wininet
    Von DragonMaster im Forum C/C++
    Antworten: 0
    Letzter Beitrag: 29.04.06, 00:08
  4. Probleme mit #include <WinINet.h>
    Von Simmx im Forum C/C++
    Antworten: 2
    Letzter Beitrag: 07.11.03, 15:24
  5. Wininet.h und alles was dazu gehört.....
    Von EngelchenB im Forum C/C++
    Antworten: 2
    Letzter Beitrag: 27.09.03, 13:25