Форум программистов, компьютерный форум CyberForum.ru

Хелп с POST на C++ - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 12, средняя оценка - 4.92
turbobox
0 / 0 / 0
Регистрация: 17.01.2012
Сообщений: 11
21.01.2012, 19:41     Хелп с POST на C++ #1
Друзья. Помогите переписать код на C++
Код
$sDomain = 'ХХХ.ХХХ.ХХХ.50' ;домен или ip-адрес
$iPort = 80 ;порт
$sParameters = 'user%5Blogin%5D='&GUICtrlRead($input1)&'&user%5Bpassword%5D='&GUICtrlRead($input2)&'&user%5Bpassword_confirmation%5D='&GUICtrlRead($input2)&'&user%5Bnickname%5D='&GUICtrlRead($input1)&'&user%5Bemail%5D='&GUICtrlRead($input3)&'&user%5Bemail_confirmation%5D='&GUICtrlRead($input3)&'&user%5Bbirthday%283i%29%5D=1&user%5Bbirthday%282i%29%5D=1&user%5Bbirthday%281i%29%5D=1991&user%5Bgender%5D=m&user%5Bcountry_id%5D=36&user%5Bnewsletter%5D=0&user%5Bterms_of_service%5D=0&user%5Bterms_of_service%5D=1&user%5Busedform%5D=usernew'

;Запрос, который будет отправлен серверу
$sRequest = 'POST /users HTTP/1.1' & @CRLF ;Request-строка
$sRequest &= 'Accept: text/html, application/xhtml+xml, */*' & @CRLF
$sRequest &= 'Referer: http://ХХХХХХХ.com/users/new' & @CRLF
$sRequest &= 'Accept-Language: ru' & @CRLF
$sRequest &= 'User-Agent: IE' & @CRLF ;au3browser' & @CRLF
$sRequest &= 'Content-Type: application/x-www-form-urlencoded' & @CRLF ;
$sRequest &= 'Accept-Encoding: gzip, deflate' & @CRLF
$sRequest &= 'Host: en.alaplaya.net' & @CRLF
$sRequest &= 'Content-Length: ' & StringLen($sParameters) & @CRLF ;
$sRequest &= 'Connection: Keep-Alive' & @CRLF
$sRequest &= 'Cache-Control: no-cache' & @CRLF
Как видите:
Код
&GUICtrlRead($input1)&
Это данные беруться из текстовых полей.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.01.2012, 19:41     Хелп с POST на C++
Посмотрите здесь:

C++ МАссив хелп
C++ Создание игры! Программисты ХЕЛП!!!
[C++] Хелп в чем ошибки C++
C++ многомерный массив.хелп
C++ Хелп по проге
И снова Хелп для двоечьника C++
C++ Нужен Хелп по потокам
C++ Лабораторная по программированию. ХЕЛП=(

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
igorrr37
 Аватар для igorrr37
1594 / 1222 / 118
Регистрация: 21.12.2010
Сообщений: 1,868
Записей в блоге: 7
22.01.2012, 13:50     Хелп с POST на C++ #2
данные определены в тексте проги, для работы с сетью используется boost::asio
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
#include <iostream>
#include <istream>
#include <ostream>
#include <string>
#include <boost/asio.hpp>
typedef boost::asio::ip::tcp tcp;
 
/*
 
'user%5Blogin%5D='&GUICtrlRead($input1)&'
&user%5Bpassword%5D='&GUICtrlRead($input2)&'
&user%5Bpassword_confirmation%5D='&GUICtrlRead($input2)&'
&user%5Bnickname%5D='&GUICtrlRead($input1)&'
&user%5Bemail%5D='&GUICtrlRead($input3)&'
&user%5Bemail_confirmation%5D='&GUICtrlRead($input3)&'
&user%5Bbirthday%283i%29%5D=1
&user%5Bbirthday%282i%29%5D=1
&user%5Bbirthday%281i%29%5D=1991
&user%5Bgender%5D=m
&user%5Bcountry_id%5D=36
&user%5Bnewsletter%5D=0
&user%5Bterms_of_service%5D=0
&user%5Bterms_of_service%5D=1
&user%5Busedform%5D=usernew'
 
*/
 
int main()
{
    std::string host = "en.alaplaya.net";
    try{
        boost::asio::io_service io;
        tcp::resolver resolver(io);
        tcp::socket sock(io);
        boost::system::error_code err;
        boost::asio::streambuf reqBuf;
        std::ostream reqStream(&reqBuf);
        boost::asio::streambuf* pRespBuf = new boost::asio::streambuf();
        std::istream respStream(pRespBuf);
        tcp::resolver::query q(host, "http");
        tcp::resolver::iterator it = resolver.resolve(q, err), itEnd;
        if (err)
        {
            std::cerr<<"resolve() failed:\n"<<err.message()<<"\n";
            return __LINE__;
        }
        err = boost::asio::error::host_not_found;
        while (err && it != itEnd)
        {
            sock.close();
            sock.connect(*it++, err);
        }
        if (err)
        {
            std::cerr << "connect() failed\n";
            return __LINE__;
        }
        std::string nick = "qazwsx", mail = nick + "%40mail.ru", password = "34343434", body =
            "user%5Blogin%5D=" + nick + "&"
            "user%5Bpassword%5D=" + password + "&"
            "user%5Bpassword_confirmation%5D=" + password + "&"
            "user%5Bnickname%5D=" + nick + "&"
            "user%5Bemail%5D=" + mail + "&"
            "user%5Bemail_confirmation%5D=" + mail + "&"
            "user%5Bbirthday%283i%29%5D=1&"
            "user%5Bbirthday%282i%29%5D=1&"
            "user%5Bbirthday%281i%29%5D=1991&"
            "user%5Bgender%5D=m&"
            "user%5Bcountry_id%5D=36&"
            "user%5Bmedia_code_id%5D=1&"
            "user%5Bnewsletter%5D=0&"
            "user%5Bnewsletter%5D=1&"
            "user%5Bterms_of_service%5D=0&"
            "user%5Bterms_of_service%5D=1&"
            "user%5Busedform%5D=usernew";
        std::cout << "body.size() returns " << body.size() << std::endl;
        reqStream << "POST /users HTTP/1.1\r\n"
            << "Host: " << host << "\r\n"
            << "User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; ru; rv:1.9.2.25) Gecko/20111212 Firefox/3.6.25 sputnik 2.5.1.2\r\n"
            << "Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\r\n"
            << "Accept-Language: ru-ru,ru;q=0.8,en-us;q=0.5,en;q=0.3\r\n"
            << "Accept-Encoding: gzip,deflate\r\n"
            << "Accept-Charset: windows-1251,utf-8;q=0.7,*;q=0.7\r\n"
            << "Keep-Alive: 115\r\n"
            << "Connection: keep-alive\r\n"
            << "Referer: http://en.alaplaya.net/users\r\n"
            << "Content-Type: application/x-www-form-urlencoded\r\n"
            << "Content-Length: " << body.size() << "\r\n\r\n"
            << body;
        boost::asio::write(sock, reqBuf);
        boost::asio::read_until(sock, *pRespBuf, "\r\n\r\n");
        std::string headers, tmp;
        while(std::getline(respStream, tmp) && tmp != "\r")
        {
            headers += (tmp + '\n');
        }
        std::cout << headers << "\n";
        respStream.rdbuf(0);
        delete pRespBuf;
        pRespBuf = 0;
        sock.shutdown(tcp::socket::shutdown_both);
        sock.close();
    }
    catch (std::exception& e)
    {
        std::cerr << "Thrown exception:\n" << e.what() << "\n";
    }
    return 0;
}
Yandex
Объявления
22.01.2012, 13:50     Хелп с POST на C++
Ответ Создать тему
Опции темы

Текущее время: 21:18. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru