超时在poco 1.10.1中发送HTTPRequest

问题描述 投票:0回答:1

我有一个C ++应用程序,该应用程序连接到localhost上的http服务器。该应用程序在Windows 10上运行。我曾经使用poco 1.7.8p3来管理连接。该库是使用Visual Studio 15使用源附带的buildwin脚本构建的,并且一切正常。

我决定将poco升级到1.10.1版。这次我使用CMake构建了库。

以前用于1.7.8p3版本的代码不再适用于poco 1.10.1。从HTTPClientSession发送HTTPRequest时,出现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);
c++ http poco-libraries
1个回答
0
投票

似乎不再可能将主机指定为“ localhost”。将session.setHost("localhost");更改为session.setHost("127.0.0.1");解决了该问题。

© www.soinside.com 2019 - 2024. All rights reserved.