C++ Poco 发起HTTP请求并获取响应

复制
#include <Poco/Net/HTTPClientSession.h>
#include <Poco/Net/HTTPRequest.h>
#include <Poco/Net/HTTPResponse.h>
#include <Poco/StreamCopier.h>
#include <Poco/URI.h>
#include <fstream>
#include <iostream>
#include <string>
bool Get(const std::string& link, const std::string& file_name) {
// Send request
Poco::URI uri(link);
Poco::Net::HTTPClientSession session(uri.getHost(), uri.getPort());
Poco::Net::HTTPRequest request(Poco::Net::HTTPRequest::HTTP_GET, uri.getPath(), Poco::Net::HTTPMessage::HTTP_1_1);
session.sendRequest(request);
// Recv response
Poco::Net::HTTPResponse response;
std::istream& recv_response = session.receiveResponse(response);
// Response len
int64_t total_size = response.getContentLength();
// Write to file
{
std::ofstream output_file(file_name, std::ios_base::out | std::ios_base::binary);
Poco::StreamCopier copier;
copier.copyStream(recv_response, output_file);
int len = output_file.tellp();
output_file.close();
}
// stdout
{
Poco::StreamCopier copier;
copier.copyStream(recv_response, std::cout);
}
return true;
}
posted @   umichan  阅读(898)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
· 25岁的心里话
点击右上角即可分享
微信分享提示