Тайм-аут отправки HTTPRequest в poco 1.10.1 - PullRequest
0 голосов
/ 15 марта 2020

У меня есть приложение на c ++, которое подключается к серверу http на localhost. Приложение работает на windows 10. Я использовал poco 1.7.8p3 для управления соединением. Библиотека была построена с использованием Visual Studio 15 с использованием сценария buildwin, поставляемого с исходным кодом, и все работало нормально.

Я решил обновить poco до версии 1.10.1. На этот раз я собрал библиотеку с использованием CMake.

Код, который работал с версией 1.7.8p3, больше не работает с poco 1.10.1. При отправке HTTPRequest из HTTPClientSession я получаю исключение Poco :: TimeoutException. Сервер никогда не получает запрос. Любая помощь в решении этой проблемы будет принята с благодарностью. Пример кода приведен ниже.

HTTPClientSession session

session.setKeepAlive(false);
session.setTimeout(Poco::Timespan(0, 0, 0, 5, 0));

int port = 62300;
session.setPort(port);
session.setHost("localhost");

const std::string uri = "/get_server_config";

HTTPRequest request(HTTPRequest::HTTP_GET, uri, HTTPMessage::HTTP_1_1);

//Generates Poco::TimeoutException
session.sendRequest(request);

auto &sock = session.socket();
const Poco::Timespan ts(10L, 1L);
sock.setReceiveTimeout(ts);

1 Ответ

0 голосов
/ 15 марта 2020

Кажется, что больше невозможно указать хост как "localhost". Изменение session.setHost("localhost"); на session.setHost("127.0.0.1"); решило проблему.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...