Задача такая : Надо отправить POST запрос на "С" запрос такого типа: Code: POST /file.html HTTP/1.0 Accept: */* Referer: http://www.site.ru/file.html?lang=ua Accept-Language: ru Content-Type: application/x-www-form-urlencoded User-Agent: Internet Explorer 6.0 Host: www.site.ru Content-Length: 83 Pragma: no-cache Cookie: countfile=1; Connection: Keep-Alive submitted=true&lang=ua&code=1124&message=Lolof не могу найти мануал ,мож хто подкинет или примерчик ?
Code: #define SENDBUF_LEN 512 void ComposeRequest(char* dest) { ZeroMemory(dest, SENDBUF_LEN); lstrcpy(dest, "POST /file.html HTTP/1.0\r\n); lstrcat(dest, "Referer: http://www.site.ru/file.html?lang=ua\r\n"); lstrcat(dest, "Accept-Language: ru\r\n"); lstrcat(dest, "Content-Type: application/x-www-form-urlencoded\r\n"); lstrcat(dest, "User-Agent: Internet Explorer 6.0\r\n"); lstrcat(dest, "Host: www.site.ru\r\n)"; lstrcat(dest, "Content-Length: 83\r\n"); lstrcat(dest, "Cookie: countfile=1;\r\n"); lstrcat(dest, "Connection: Keep-Alive\r\n\r\n"); lstrcat(dest, "submitted=true&lang=ua&code=1124&message=Lolof\r\n"); } main () { WSADATA theWSAData; if (WSAStartup(WINSOCK_VERSION, &theWSAData) != 0) { printf("WSAStartup(): Initialization error\n"); return; } else { SOCKADDR_IN SCKT_ADDR; SCKT_addr.sin_family = AF_INET; SCKT_addr.sin_addr.s_addr = inet_addr("бла бла"); SCKT_addr.sin_port = htons(80); // SOCKET s = socket(AF_INET, SOCK_STREAM, IPPROTO_IP); if (s != INVALID_SOCKET) { int s_rslt = connect(sn.s, (PSOCKADDR)&SCKT_ADDR, sizeof(SCKT_ADDR)); if (s_rslt != SOCKET_ERROR) { char sendbuf[SENDBUF_LEN]; ComposeRequest(sendbuf); send(s, (char*)sendbuf, lstrlen(sendbuf), 0); } } } WSACleanup(); } тип того много lstrcat'ов - просто для наглядности
пардон, переделывал из кода, где запрос вычисляется очепятка: lstrcpy(dest, "POST /file.html HTTP/1.0\r\n"); // кавычки + в коде не достает инклюда и дефайна. вот они #define WINSOCK_VERSION 0x0002 #include <winsock2.h> + SCKT_addr.sin_addr.s_addr = inet_addr("бла бла"); // адрес сервера, к которому коннектимся, его надо подставить вместо бла-бла ))) под борланд С++ билдером все работает