http в VC++

Discussion in 'С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby' started by [ Kolokole ], 6 May 2011.

  1. [ Kolokole ]

    [ Kolokole ] New Member

    Joined:
    3 May 2011
    Messages:
    2
    Likes Received:
    0
    Reputations:
    0
    Здравствуйте.Писал на делфи,решил перейти на с++ ,
    с синтаксисом разобрался,и в принципе всякую декстопную штуку я пишу.
    Хочу научиться работать с сетью.В гугле есть огромные малопонятные примеры работы с сетью в с++(и то компилятор vc++ вечно орет).

    Напишите пожалуйста удобный маленький пример отправки POST/GET запросов(что бы работало в среде VC++ 2010).

    Или скиньте проект.
    Большое спасибо.
     
  2. randman

    randman Members of Antichat

    Joined:
    15 May 2010
    Messages:
    1,366
    Likes Received:
    610
    Reputations:
    1,101
    Вот пример, сразу с циклом, и с выборкой значения. Код не грамотный - но поможет понять основы.
    PHP:
    #include <iostream>

    #include <clocale>

    #include <stdio.h>

    #include <windows.h>

    #include <winsock.h>





    #pragma comment(lib,"wsock32.lib")



    using namespace std;



    int main() {

            
    setlocaleLC_ALL"Russian");

            
    long nidmid;

            
    cout << "Введите начальный ID:";

            
    cin >> nid;

            
    cout << "Введите конечный ID:";

            
    cin >> mid;



            
    //-----------------------------------------------



    for (;nid<mid;nid++) {





        
    SOCKET sock;

        
    sockaddr_in SockAddr;

        
    WSADATA WSAData;

        
    WSAStartup(MAKEWORD(2,2), &WSAData);

        
    sock=socket(AF_INET,SOCK_STREAM,0);

        
    SockAddr.sin_family=AF_INET;

        
    SockAddr.sin_addr.S_un.S_addr=inet_addr("91.202.63.66");

        
    SockAddr.sin_port=htons(80);

        
    connect(sock,(struct sockaddr *)&SockAddr,sizeof(SockAddr));



            
    char a[200];

            
    sprintf(a"GET /member.php?u=%d HTTP/1.1\r\nhost: forum.antichat.ru\r\nConnection: close\r\n\r\n"nid);





        
    int d=10;

        
    char b[300];       

        
    send(sock,a,sizeof(a),0);

        

        for (
    int i=0;i<3;i++) {

           
    d=recv(sock,b,sizeof(b),0);

        }

        





        
    closesocket(sock);

            

            
    string s b;



            



    for (
    int g=0;g<300;g++) {

        if (
    b[g] == 'и' && b[g+1] == 'л' && b[g+2] == 'я' && b[g+3] == ':' && b[g+4] == ' ') {

            for (
    int gv1=0;gv1<25;gv1++) {

            if (
    b[g+5+gv1]=='<')

                break;

            else

                
    cout << b[g+5+gv1];

            }

            
    cout << "\r\n";

            break;

            }

    }



    }



    cout << "\r\n\r\nВыполнение программы заверешено . . . ";



    getchar();



    }
     
  3. slesh

    slesh Elder - Старейшина

    Joined:
    5 Mar 2007
    Messages:
    2,702
    Likes Received:
    1,224
    Reputations:
    455
    Что хочешь то и юзай, самое распространеное:
    1) Winsock - сам конется, сам отсылай запрос, сам парси ответ
    2) WinInet - стандартная виндовая либа для работы с HTTP (SSL/TLS) и FTP. Всё описание есть на MSDN
    3) Lib Curl - примеров дофига.
     
  4. [ Kolokole ]

    [ Kolokole ] New Member

    Joined:
    3 May 2011
    Messages:
    2
    Likes Received:
    0
    Reputations:
    0
    Большое спасибо Слеш и ХАМЕНА,намного проще когда помогают люди.