我有一个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);
似乎不再可能将主机指定为“ localhost”。将session.setHost("localhost");
更改为session.setHost("127.0.0.1");
解决了该问题。