Pokaż wyniki 1 do 10 z 23

Temat: get HTTP w c++

Hybrid View

Previous Post Previous Post   Next Post Next Post
  1. #1

    Domyślnie get HTTP w c++

    Kiedy połączysz się z jakimś serwerem (www) przez telnet na porcie 80 możesz wysłać żądanie GET . Chciałbym to zrobić w C++. Żeby program łączył się z wybranym przeze mnie hostem i ściągał tekst z pliku plaintext.txt(na przykład) . Nie mam pojęcia jak to zrobić .... Jakieś pomysły Może macie jakiś gotowy kod. Nie ukrywam ze przydał by mi się taki gotowiec:P

  2. #2

    Domyślnie

    Nie jestem specjalistą ale zapoznaj się z protokołami HTTP nie wiem czy dobrze Cie zrozumiałem ale jeśli chodzi o pobranie zawartosci strony za pomocą protokołu to:

    powiedzmy ze łaczymy sie z www.host.pl/index.html

    Kod:
    masz socketa...
    i wysyłasz po połaczeniu takie zapytanie;]:
    GET /index.php HTTP/1.1\r\nHost:host.pl\r\nConnection: Keep-elieve\r\n\r\n
    i  w danych od serwera (chyba zawsze odtrzymasz dwukrotne dane po zapytaniu) masz inf o serwerze i o połączeniu a w drugim pakiecie zawartosc index.html:)
    Mam nadzieje ze o to chodziło i ze pomogłem

  3. #3

    Domyślnie

    Dokładnie , zawartość strony to będzie czysty tekst. 1 lub maksymalnie kilka wyrazów. Nie wiem jak sie za to zabrać w c++. przejdzie system("telnet adresstrony 80") i dalej żadanie get Fajnie by było ... nie wiem jak musiałbym to napisać i potem przekazać do zmiennej typu string Reszta programu już napisana hehe. thX za zainteresowanie

  4. #4

    Domyślnie

    Czasem serwer chce przesłać dane w trybie chunked, wtedy nie jest już tak łatwo.
    Ale ogólnie rzecz biorąc: Wysyłasz:
    Kod:
    GET/POST... zasób HTTP/1.1\r\n
    Host: serwer.pl\r\n
    inny nagłówek\r\n
    jeszcze inny nagłówek\r\n
    \r\n //pusta linia oznacza koniec zapytania
    Potem odpowiada serwer, najpierw nagłówek odpowiedzi \r\n (pusta linia) dane.

    Polecam RFC
    "a imię jego będzie czterdzieści i cztery"
    A. Mickiewicz Dziady cz. III

  5. #5

    Domyślnie

    No spoko to kumam ale nie wiem co z tym kodem w C++ ...

  6. #6

    Domyślnie

    Kod:
    int send_string(int sockfd, unsigned char *buffer) {
       int sent_bytes, bytes_to_send;
       bytes_to_send = strlen(buffer);
       while(bytes_to_send > 0) {
          sent_bytes = send(sockfd, buffer, bytes_to_send, 0);
          if(send_bytes == -1)
             return 0;
          bytes_to_send -= sent_bytes;
          buffer += sent_bytes;
       }
       return 1;
    }
    Używasz: send_string(gniazdoSerwera, "żądanieDoSerwera");

    żądanieDoSerwera -> to wpisz to co powyżej ci napisali, a jak nie działa to poszukaj

    Ja bym wpisał coś takiego w żądaniu do serwera:
    "GET / HTTP/1.1\r\nGET http://www.strona.pl/plik.zip HTTP/1.1\r\n"

    Nie wiem czy to żądanie zadziała bo dawno się tym bawiłem.
    Ostatnio edytowane przez Paladyn : 12-02-2009 - 22:52

Podobne wątki

  1. Http
    By janiety in forum Newbie - dla początkujących!
    Odpowiedzi: 11
    Autor: 12-12-2007, 14:18
  2. ip - http
    By Danielos13 in forum Newbie - dla początkujących!
    Odpowiedzi: 38
    Autor: 09-16-2007, 23:37
  3. http 80
    By eryk in forum Hacking
    Odpowiedzi: 5
    Autor: 05-16-2007, 20:58

Zasady Postowania

  • Nie możesz zakładać nowych tematów
  • Nie możesz pisać wiadomości
  • Nie możesz dodawać załączników
  • Nie możesz edytować swoich postów
  •  
Subskrybuj