Генерация HTTP запросов на c++

Discussion in 'С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby' started by Trinity, 24 Dec 2005.

  1. Trinity

    Trinity New Member

    Joined:
    9 Aug 2005
    Messages:
    1
    Likes Received:
    0
    Reputations:
    0
    Искала, искала и ничего не нашла.. Мож кто знает как
    отправить заголовки? Например эти:

    POST *** HTTP/1.0
    Accept: image/gif */*
    Referer: ***
    Accept-Language: ru
    Content-Type: application/x-www-form-urlencoded
    Proxy-Connection: Keep-Alive
    User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; FDM)
    Host: ***
    Content-Length: **
    Pragma: no-cache
    Cookie: language=ru

    name=asavav&pass1=aaa&pass2=aaa


    И чтобы он в какую-ниб. переменную ответ сервера записал
     
  2. madnet

    madnet Умиротворенный

    Joined:
    9 Dec 2004
    Messages:
    868
    Likes Received:
    343
    Reputations:
    423
    _________________________
  3. nerezus

    nerezus Banned

    Joined:
    12 Aug 2004
    Messages:
    3,191
    Likes Received:
    729
    Reputations:
    266
    boost.org
     
  4. JazzzSummerMan

    Joined:
    7 Apr 2004
    Messages:
    374
    Likes Received:
    18
    Reputations:
    14
    мэднет ну трините вроде как нужно знать как написать)
    Алгол помню хотел написать такую статью по программированию чтобы работать с заголовками, расхотел наверно
     
  5. Deem3n®

    Deem3n® RTFMSDN

    Joined:
    19 Sep 2005
    Messages:
    378
    Likes Received:
    153
    Reputations:
    164
    Вот статья с примером
    А вот тут и тут можно еще найти
     
  6. qBiN

    qBiN Вот такой вот я :(

    Joined:
    20 Jan 2005
    Messages:
    834
    Likes Received:
    73
    Reputations:
    33
    Нерезус нафига использовать буст то? Можно погемороится с winsock что я собственна щас и делаю))
     
  7. nerezus

    nerezus Banned

    Joined:
    12 Aug 2004
    Messages:
    3,191
    Likes Received:
    729
    Reputations:
    266
    считаешь себя умнее профессиональных с++ кодеров?

    а на линухе есть винсок?
     
  8. SNK

    SNK Member

    Joined:
    18 Dec 2005
    Messages:
    17
    Likes Received:
    5
    Reputations:
    0
    Простой пример

    Вот мизерный пример отправки HTTP запроса на C++

    Code:
            WSAData wsa;
    	SOCKET sock;
    	struct sockaddr_in addr;
    	char buffer[1024] = "GET http://antichat.ru/cgi-bin/s.jpg?test HTTP/1.0\r\nHost: www.antichat.ru\r\n\r\n";
    	struct hostent *host=NULL;
    	char shost[255] = "www.antichat.ru";
    	HANDLE hEvent;
    	if (WSAStartup(MAKEWORD(1, 1), &wsa) != 0)
    	{
    		AfxMessageBox("Can't load a correct version of WinSock");
    		return;
    	}
    
    	sock = socket(AF_INET, SOCK_STREAM, IPPROTO_IP);
    
    	if (sock == SOCKET_ERROR)
    	{
    		AfxMessageBox("Can't load WinSock");
    	}
    
    	addr.sin_addr.s_addr = htonl(INADDR_ANY);
    	addr.sin_family = AF_INET;
    	host = gethostbyname(shost);
    	CopyMemory(&addr.sin_addr, host->h_addr_list[0],host->h_length);
    	addr.sin_port = htons(80);
    
    	connect(sock, (struct sockaddr *) &addr, sizeof (addr));
    	send(sock,buffer,sizeof(buffer),0);
    	hEvent = CreateEvent(0,false,true,"");
    	WaitForSingleObject(hEvent,2000);
    	recv(sock,buffer,1024,0);
    	closesocket(sock);
    	WSACleanup();
    	SetDlgItemText(IDC_EDIT1,buffer);
    
    
    buffer - HTTP запрос

    Я знаю что это не лутший способ чтения ответа сервера но для примера пойдет...
    Если нужна будет помощь пиши на мыло.
     
  9. qBiN

    qBiN Вот такой вот я :(

    Joined:
    20 Jan 2005
    Messages:
    834
    Likes Received:
    73
    Reputations:
    33
    Вроде да.
    Свой велосипед всегда удобнее...
     
  10. nerezus

    nerezus Banned

    Joined:
    12 Aug 2004
    Messages:
    3,191
    Likes Received:
    729
    Reputations:
    266
    вдумайся: WinSock. Win. Windoze.
     
  11. qBiN

    qBiN Вот такой вот я :(

    Joined:
    20 Jan 2005
    Messages:
    834
    Likes Received:
    73
    Reputations:
    33
    Сокеты,хм,вдумайся на основе беркли,хм беркли - *BSD =)
    Щас приведу маленький кусок из учебника от "BLACK SUN RESEARCH FACILITY"
    То есть код под винсок(1 версии) можно переделать под никсы с мельчайшими изменениями...
     
  12. nerezus

    nerezus Banned

    Joined:
    12 Aug 2004
    Messages:
    3,191
    Likes Received:
    729
    Reputations:
    266
    дай мне такой код, и я поверю. А пока - не верю.
     
  13. qBiN

    qBiN Вот такой вот я :(

    Joined:
    20 Jan 2005
    Messages:
    834
    Likes Received:
    73
    Reputations:
    33
    Мне все равно веришь или нет =)
     
  14. KEZ

    KEZ Ненасытный школьник

    Joined:
    18 May 2005
    Messages:
    1,604
    Likes Received:
    754
    Reputations:
    397
    начнем с того что в Windows нужна closesocket() а в unix - close()
    в винде - WSAStartup(), WSACleanup(), в unix-не нужно
     
  15. KEZ

    KEZ Ненасытный школьник

    Joined:
    18 May 2005
    Messages:
    1,604
    Likes Received:
    754
    Reputations:
    397
    причем в винде это API ф-ия а в Unix- syscall
     
  16. ZaCo

    ZaCo Banned

    Joined:
    20 Jun 2005
    Messages:
    737
    Likes Received:
    336
    Reputations:
    215
    дык ребят в никсах функции для работы с сетью ДАЖЕ в передаваемых параметрах не сильно отличаются от тех что в винсок - ибо билл хотел сделать все свое но так и не решился ;) так что явных отличий там нет...
    2kez кажись в юнисе иницилизировать даже не нужно ;)
    ---
    зы на правильность не проверял но кажись Snk привел отличный пример для виндоус...
     
  17. qBiN

    qBiN Вот такой вот я :(

    Joined:
    20 Jan 2005
    Messages:
    834
    Likes Received:
    73
    Reputations:
    33
    +отличия названия\путей хидеров + в никсах используются только write read в винде send recv