1 Star 2 Fork 0

undefined/asio_async_http

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
AsyncHttpClient.hpp 2.47 KB
一键复制 编辑 原始数据 按行查看 历史
ctemple 提交于 2017-02-11 14:13 . add async http server
#pragma once
#include <map>
#include <string>
#include <boost/smart_ptr.hpp>
#include <boost/function.hpp>
#include <boost/asio.hpp>
namespace Http
{
///---------------------------------------------
/// asio첽http client
/// --֧https
/// ---cbh
///---------------------------------------------
class AsyncClient : public boost::enable_shared_from_this<AsyncClient> {
public:
typedef boost::shared_ptr<AsyncClient> Ptr;
typedef boost::function<void(AsyncClient::Ptr)> Callback;
public:
AsyncClient(boost::asio::io_service& ioservice);
~AsyncClient();
bool Parse(const std::string& url);
void SetServer(const std::string& host, int port);
void SetQueryUrl(const std::string& query);
void AddQueryValue(const std::string& name, const std::string& value);
void AddHeaderValue(const std::string& name, const std::string& value);
void Get();
void Get(Callback callback);
void Post();
void Post(Callback callback);
void Post(const std::string& postData);
void Post(const std::string& postData, Callback callback);
bool IsSucceed();
const std::string& GetResponse();
const std::string& GetErrorMessage();
protected:
void Perform(const std::string& requestType, Callback callback);
void HandleResolve(const boost::system::error_code& err, boost::asio::ip::tcp::resolver::iterator endpoint_iterator);
void HandleConnect(const boost::system::error_code& err);
void HandleWriteFinish(const boost::system::error_code& err);
void HandleReadStatusCodeFinish(const boost::system::error_code& err);
void HandleReadHeadersFinish(const boost::system::error_code& err);
void HandleReadTrunkedHeaderFinish(const boost::system::error_code& err);
void HandleReadTrunkedContentFinish(const boost::system::error_code& err);
void HandleReadContentFinish(const boost::system::error_code& err);
void PostFinish();
protected:
Callback m_vCallback;
boost::asio::io_service& m_rIoService;
protected:
int m_nPort;
std::string m_sHost;
std::string m_sPort;
std::string m_sQueryUrl;
std::string m_sRequestType;
std::string m_sErrorInfo;
std::string m_sRequestData;
std::string m_sResponseData;
std::map<std::string, std::string> m_mQueryValues;
std::map<std::string, std::string> m_mQueryHeaders;
protected:
boost::asio::ip::tcp::resolver m_mResolver;
boost::asio::ip::tcp::socket m_mSocket;
boost::asio::streambuf m_mRequest;
boost::asio::streambuf m_mResponse;
protected:
unsigned int m_nResponseLength;
unsigned int m_nTrunkedLength;
};
}
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
C++
1
https://gitee.com/ctemple/asio_async_http.git
git@gitee.com:ctemple/asio_async_http.git
ctemple
asio_async_http
asio_async_http
master

搜索帮助

0d507c66 1850385 C8b1a773 1850385