C++ boost asio отправляет запросы

Мне нужно отправить несколько запросов на мою виртуальную машину. Я получаю примеры пакетов из файла pcap, а затем изменяю их, чтобы вставить мои данные (я делаю это, потому что формат данных довольно странный). Сначала я отправляю пустой почтовый запрос (переменная none) на мой сервер, и все в порядке, сервер отвечает мне. Но затем мне нужно отправить еще один почтовый запрос (переменная challenge_responce), но когда я делаю это в первый раз, сервер не отвечает мне.

none = "POST /jsproxy HTTP/1.1
Host: 192.168.37.2
Connection: keep-alive
Content-Length: 0
Pragma: no-cache
Cache-Control: no-cache
Origin: file://
User-Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Ubuntu Chromium/44.0.2403.89 Chrome/44.0.2403.89 Safari/537.36
Content-Type: text/plain;charset=UTF-8
Accept: */*
Accept-Encoding: gzip, deflate
Accept-Language: en-US,en;q=0.8
Cookie: username=admin"

challenge_responce = "POST /jsproxy HTTP/1.1
Host: 192.168.37.2
Connection: keep-alive
Content-Length: 117
Pragma: no-cache
Cache-Control: no-cache
Origin: file://
User-Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Ubuntu Chromium/44.0.2403.89 Chrome/44.0.2403.89 Safari/537.36
Content-Type: text/plain;charset=UTF-8
Accept: */*
Accept-Encoding: gzip, deflate
Accept-Language: en-US,en;q=0.8
Cookie: username=admin

ДЂДЂДЂДЂДЂДЂДЂ/Rñ±•Â$0[^96“ù¦ĀĀ!@#$%^&*()_+:3|~ĀĀĀĀĀĀĀĀ§Ç1&TВЌВЌpMГЇm)[4}(В¤<HГѓ%Гў(Г„Гadmin"

Вот мой код:

packet = pcap_next(handle, &header);
Arrcpy(none, ParsePacket(packet, length), 1000);

packet = pcap_next(handle, &header);
Arrcpy(challenge, ParsePacket(packet, length), 1000);

packet = pcap_next(handle, &header);
Arrcpy(challenge_responce, ParsePacket(packet, length), 1000);

boost::asio::ip::tcp::iostream stream("192.168.37.2", "http");

stream << none;

std::string temp;
std::string chPacket;
auto t = stream.rdbuf();
while (std::getline(stream, temp))
    chPacket += temp;

auto code = GetChallenge(chPacket);

std::string modChallengeResponce = ModifyChallengeResponce(challenge_responce, length, code, "qazwsx12");

stream << modChallengeResponce;
std::string resq;

while (std::getline(stream, temp))
    resq += temp;

std::cout << stream.rdbuf();

Как я могу это исправить?? Может быть, я не должен использовать tcp::iostream??

0 ответов

Другие вопросы по тегам