Показать сообщение отдельно

  #7  
Старый 01.06.2009, 00:41
Spy2ex
Новичок
Регистрация: 20.09.2008
Сообщений: 29
Провел на форуме:
528520

Репутация: 13
По умолчанию

У меня проблема хочу авторизоваться на сайте вконтакте средствами С++.
Отловив я все запросы что посылает мой браузер, и посылая их же в коде, в ответе получаю "400 bad reqest".
Вот код.
Код:
#include <stdio.h>
#include <string.h>
#include <winsock2.h>
#include <windows.h>
#include <ctype.h>

#define PORT 80
#define SERVERADDR "93.186.225.212"     // Адрес сервера

#pragma comment(lib, "Ws2_32.lib")   //либа

int main ( int argc, char* argv [ ] )
{
		WSADATA wd;
		char buff[100000];
		char buff2[100000]=
		{
		"POST /login.php HTTP/1.1"
"Host: vkontakte.ru"
"User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9) Gecko/2008051206 Firefox/3.0 (.NET CLR 3.5.30729)"
"Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"
"Accept-Language: ru,en-us;q=0.7,en;q=0.3"
"Accept-Encoding: gzip,deflate"
"Accept-Charset: windows-1251,utf-8;q=0.7,*;q=0.7"
"Keep-Alive: 300"
"Connection: keep-alive"
"Content-Type: application/x-www-form-urlencoded; charset=UTF-8"
"X-Requested-With: XMLHttpRequest"
"Referer: http://vkontakte.ru/index.php"
"Content-Length: 71"
"Cookie: remixchk=5; remixautobookmark=2; remixlang=0"
"Pragma: no-cache"
"Cache-Control: no-cache"
"op=a_login_attempt&email=e-mail&pass=pass&expire=0"




		};
        printf ( "TCP Client \n" ); // ну, тут и так понятно

        if ( WSAStartup ( 0x202, &wd ) )
        {
                printf ( " WSAStart error  %d \n ", WSAGetLastError ( ) );
                return -1;
        }

        SOCKET sock ;
        sock=socket ( AF_INET, SOCK_STREAM, 0 );
        if  ( sock < 0 )
        {
			printf (" Socket ( ) error    %d \n ", WSAGetLastError ( ) );
			return  -1;
        }

        sockaddr_in  dest_addr;
        dest_addr.sin_family=AF_INET; //инет коннектинг
        dest_addr.sin_port=htons ( PORT ); //порт
        HOSTENT    *hst;  // хост

        if( inet_addr(SERVERADDR) != INADDR_NONE )
			dest_addr.sin_addr.S_un.S_addr = inet_addr(SERVERADDR);
        else if( hst=gethostbyname ( SERVERADDR ) )
			( ( unsigned long   * ) &dest_addr.sin_addr )[0]=((unsigned long** )hst->h_addr_list)[0][0];
        else
        {
               printf( "invalid address  %s \n", SERVERADDR );
               closesocket( sock ) ;
               WSACleanup();
               return  -1;
        }

        if(connect( sock, (sockaddr *)&dest_addr, sizeof(dest_addr) ))
        {
               printf (" Connect error  %d \n ", WSAGetLastError ( ) );
               return -1;
        }

		send( sock, buff2, sizeof(buff2), 0);
		recv( sock, buff, sizeof(buff)-1, 0 );
				printf("%s",buff );
			printf("\n");
        printf ("Connection with %s succesfully. quit - quit" , SERVERADDR );

         return 0;
}
 
Ответить с цитированием