【发布时间】:2014-08-01 05:30:42
【问题描述】:
我正在使用一个简单的 Get 请求从服务器获取通知。我希望请求一直持续到从服务器收到响应(可能是 1 到 9 小时)。但我在 2 分钟内面临请求超时的问题。我将会话和请求都设置为“keepalive”。但它没有帮助。我也尝试过使用 setKeepAliveTimeout 并给它一个很大的值。但这也没有改变任何东西。以下是我正在使用的代码:
try{
//Prepare request
Poco::URI uri(url);
const Poco::Net::Context::Ptr context = new Poco::Net::Context(Poco::Net::Context::CLIENT_USE, "", "", "", Poco::Net::Context::VERIFY_NONE, 9, false, "ALL:!ADH:!LOW:!EXP:!MD5:@STRENGTH");
Poco::Net::HTTPSClientSession session(uri.getHost(), uri.getPort(), context);
session.setKeepAlive(true);
// prepare path
std::string path(uri.getPathAndQuery());
if (path.empty())
{
path = "/";
}
// send request
Poco::Net::HTTPRequest req(Poco::Net::HTTPRequest::HTTP_GET, path, Poco::Net::HTTPMessage::HTTP_1_1);
req.setKeepAlive(true);
session.sendRequest(req);
// Get response
Poco::Net::HTTPResponse res;
//Get status code
statusCode = res.getStatus());
//Get status
status = res.getReason();
//Get body
std::istream &inStream = session.receiveResponse(res);
std::ostringstream outStringStream;
outStringStream << inStream.rdbuf();
response = outStringStream.str();
}
catch(Poco::Exception& exception)
{
cout<<exception.displayText();
}
请让我知道我哪里错了。谢谢。
我在大约 2 分钟后得到状态 -1 Timeout。
【问题讨论】:
标签: httprequest session-timeout poco-libraries