0hquazEd
@0hquazEd

Почему пустое тело HTTP ответа?

Здравствуйте! Использовал boost::beast и решил получить HTML страницу ru.wikipedia.org/wiki/HTTP. Но при после отправки запроса ответ пришёл с пустым телом. В чём проблема?

#include <iostream>
#include <boost/beast.hpp>
using namespace boost::beast;

int main()
{
	// Подключение к серверу
	net::io_context io;
	net::ip::tcp::socket socket(io);
	net::ip::tcp::resolver resolver(io);

	net::connect(socket, resolver.resolve("ru.wikipedia.org", "80"));


	// Отправка запроса
	http::request<http::empty_body> request(http::verb::get, "/wiki/HTTP", 11);

	request.set(http::field::host, "ru.wikipedia.org");
	request.set(http::field::user_agent, BOOST_BEAST_VERSION_STRING);

	http::write(socket, request);


	// Чтение ответа
	std::string string_response;
	{
		flat_buffer buffer;
		http::response<http::dynamic_body> response;

		http::read(socket, buffer, response);

		string_response = buffers_to_string(response.body().data());
	}

	// На консоль выводится пустая строка
	std::cout << string_response << std::endl;


	socket.shutdown(net::ip::tcp::socket::shutdown_both);

	return 0;
}
  • Вопрос задан
  • 59 просмотров
Решения вопроса 1
saboteur_kiev
@saboteur_kiev
software engineer
В заголовках ответа можно поискать "HTTP/1.1 301 TLS Redirect"
Вики редиректит вас на https, а вы видимо редирект не поддерживаете

Попробуй сразу https://ru.wikipedia.org
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы