[C/C++] HTTP-Request

Dieses Thema im Forum "Programmierung & Entwicklung" wurde erstellt von myth2806, 15. Oktober 2006 .

Status des Themas:
Es sind keine weiteren Antworten möglich.
  1. 15. Oktober 2006
    HTTP-Request

    Hi leutz,

    ich wollte ein einfaches kleines Programm schreiben was einfach nur einen HTTP-Request an einen Server schickt und die Sntwort ausgibt. Im besten Falle den Sourcecode der Seite die ich angefordert habe.
    Leider funktioniert das nicht so ganz wie ich mir das vorstelle: Ich weiss nicht wie der gültige HTTP-Request auszusehen hat.
    Laut Wikipedia so:

    Code:
    GET /infotext.html HTTP/1.1
    Host: www.example.net
    
    naja dass schon allein kann ich nicht richtig in eine Variable verpacken.
    Entweder bekomme ich vom Server die antort dass mein request ungültig wäre oder es kommt gar nichts.

    Hier der src von meinem Programm:

    Code:
    #include <stdio.h>
    #include <stdlib.h>
    #include <windows.h>
    #include <winsock.h>
    #include <winsock2.h>
    #include <io.h>
    #include <string.h>
    
    #define BUFFER_SIZE 4096
    
    int main()
    {
     int tmp;
     
     char buf[BUFFER_SIZE] = "GET /infotext.html HTTP/1.1 \
     Host: www.example.net";
    
     
     WORD wVersionRequested;
     WSADATA wsaData;
     wVersionRequested = MAKEWORD (1, 1);
     if (WSAStartup (wVersionRequested, &wsaData) != 0)
     {
     printf( "Fehler beim Initialisieren von Winsock\n");
     exit(-1);
     }
     else
     {
     printf("Winsock initialisiert\n");
     }
     
     struct sockaddr_in addr;
     
     addr.sin_family = AF_INET;
     addr.sin_port = htons(80);
     addr.sin_addr.s_addr = inet_addr("194.150.178.34");
     
     SOCKET sock;
     sock = socket(AF_INET,SOCK_STREAM,0);
     if (sock == INVALID_SOCKET)
     {
     printf ("error while socket\n");
     perror ("reason");
     exit(-1);
     }
     
     printf ("connecting ...\n");
     
     if (connect(sock,(struct sockaddr*)&addr,sizeof(addr)) == SOCKET_ERROR)
     {
     printf("error while connect\n");
     perror("reason");
     exit(-1);
     }
     
     if (send(sock,buf,strlen(buf),0) == -1)
     {
     printf("error while send\n");
     perror("reason");
     exit(-1);
     }
     
     tmp = recv(sock,buf,sizeof(buf),0);
     if(tmp == -1)
     {
     printf("error while recv\n");
     perror("reason");
     exit(-1);
     }
     
     buf[tmp] = '\0';
     close(sock);
     
     printf ("-> \"%s\"\n\n",buf);
     system("Pause");
     
     return 0;
    }
    
    greez myth
     
  2. 15. Oktober 2006
    AW: HTTP-Request

    Code:
     char buf[BUFFER_SIZE] = "GET /infotext.html HTTP/1.1 \";
    Versuch es mal so
     
  3. 15. Oktober 2006
    AW: HTTP-Request

    ne so gehts nicht... habs inzwischen rausgefunden.
    für alle die es interessiert, so gehts:

    Code:
    char buf[] = "GET / HTTP/1.0\nHost: www.google.de\n\n";
    
    greez myth

    //closed
     
  4. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.