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

Отправка POST запроса через соксы - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 18, средняя оценка - 4.89
den-x
0 / 0 / 0
Регистрация: 11.03.2012
Сообщений: 16
07.04.2012, 08:03     Отправка POST запроса через соксы #1
Здравствуйте! Помогите с отправкой запросов в С++ без cURL, через соксы.
Есть PHP: http://den-x.comule.com/act.php
На него надо отправить POST запрос user=tester,в ответ он должен выдать tester.
Сам код возвращаемой страницы записать в файл.

Добавлено через 16 часов 20 минут
Ошибся, через сокеды.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.04.2012, 08:03     Отправка POST запроса через соксы
Посмотрите здесь:

C++ GET/POST
C++ Создание GET или POST запроса
Отправка смс через сайт C++
GET u POST 3anpoc C++
C++ Хелп с POST на C++
Отправка более, чем одного POST запроса C++
C++ Отправка GET и POST запросов
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
igorrr37
 Аватар для igorrr37
1599 / 1227 / 121
Регистрация: 21.12.2010
Сообщений: 1,875
Записей в блоге: 7
07.04.2012, 09:47     Отправка POST запроса через соксы #2
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
#include <iostream>
#include <string>
#include <boost/asio.hpp>
typedef boost::asio::ip::tcp tcp;
 
int main()
{
    std::string host = "den-x.comule.com";
    try{
        boost::asio::io_service io;
        tcp::resolver resolver(io);
        tcp::socket sock(io);
        boost::system::error_code err;
        boost::asio::streambuf buf;
        std::ostream reqStream(&buf);
        std::istream respStream(&buf);
        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 body("user=tester");
        reqStream << "POST /act.php 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://den-x.comule.com\r\n"
            << "Content-Type: application/x-www-form-urlencoded\r\n"
            << "Content-Length: " << body.size() << "\r\n\r\n"
            << body;
        boost::asio::write(sock, buf);
        boost::asio::read(sock, buf, err);
        if(err != boost::asio::error::eof) std::cerr << "read() failed\n";
        std::cout << &buf << std::endl;
        sock.shutdown(tcp::socket::shutdown_both);
        sock.close();
    }
    catch (const std::exception& e)
    {
        std::cerr << "Exception: " << e.what() << std::endl;
    }
    return 0;
}
Миниатюры
Отправка POST запроса через соксы  
den-x
0 / 0 / 0
Регистрация: 11.03.2012
Сообщений: 16
10.04.2012, 13:52  [ТС]     Отправка POST запроса через соксы #3
Дайте либы boost'a инклуды я скачал, а либ не нащёл.
Avazart
Заблокирован
10.04.2012, 14:13     Отправка POST запроса через соксы #4
Кстати кто-то пробовал #include <boost/asio.hpp> на RAD Studio, это только у меня ругается?
igorrr37
 Аватар для igorrr37
1599 / 1227 / 121
Регистрация: 21.12.2010
Сообщений: 1,875
Записей в блоге: 7
10.04.2012, 18:39     Отправка POST запроса через соксы #5
вот либы под MinGW
http://ifolder.ru/29849250
den-x
0 / 0 / 0
Регистрация: 11.03.2012
Сообщений: 16
12.04.2012, 17:45  [ТС]     Отправка POST запроса через соксы #6
Мне под VC++
Avazart
Заблокирован
12.04.2012, 17:53     Отправка POST запроса через соксы #7
под VC++ есть инсталятор boost кстати, где-то в теме по установке есть ссылка.
den-x
0 / 0 / 0
Регистрация: 11.03.2012
Сообщений: 16
16.04.2012, 17:52  [ТС]     Отправка POST запроса через соксы #8
Инистилятор не нашёл, кстати с самого начала я писал что мне нужно через winsock2.h
Дайте мне код, то гуглил вин сокеды так и не сгуглил
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.04.2012, 18:24     Отправка POST запроса через соксы
Еще ссылки по теме:

Post запрос C++
C++ Тело POST запроса. Как самому узнать, что там должно быть?
Отправка символа " через сокеты C++
POST запрос, XML в c++ C++
Отправка данных через сокет C++

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

Или воспользуйтесь поиском по форуму:
Avazart
Заблокирован
16.04.2012, 18:24     Отправка POST запроса через соксы #9
http://www.boostpro.com/download/
Yandex
Объявления
16.04.2012, 18:24     Отправка POST запроса через соксы
Ответ Создать тему
Опции темы

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