Я использую Poco для отправки HTTP-запросов, как следует из названия. Прямо сейчас я просто пытаюсь отправить запрос GET на google.com и сохранить полученный HTML-код в строке, чтобы проверить Poco и посмотреть, подходит ли он мне. Однако у меня возникли небольшие проблемы с этим. Вот мой код:
try
{
Poco::URI uri("https://www.google.com");
std::string path(uri.getPathAndQuery());
if (path.empty()) path = "/";
Poco::Net::HTTPSClientSession session(uri.getHost(), uri.getPort());
Poco::Net::HTTPRequest request(Poco::Net::HTTPRequest::HTTP_GET, path, Poco::Net::HTTPMessage::HTTP_1_1);
request.add("Content-Length", "0");
Poco::Net::HTTPResponse response;
doRequest(session, request, response);
}
catch (Poco::Exception& exc)
{
OutputDebugStringA(exc.displayText().c_str());
}
void doRequest(Poco::Net::HTTPSClientSession& session, Poco::Net::HTTPRequest& request, Poco::Net::HTTPResponse& response)
{
session.sendRequest(request);
std::istream& is = session.receiveResponse(response);
std::string body(std::istreambuf_iterator<char>(is), { });
message = (LPCWSTR)response.getStatus();
}
Я поставил точки останова на каждой строке doRequest, но срабатывают только первые две. После нажатия кнопки «Продолжить» на втором, программа просто продолжает работать как обычно. Я не получаю никаких исключений или ничего. Я добавляю Content-Length: 0
, чтобы избежать исключения NoMessageExco от Poco.