代码拉取完成,页面将自动刷新
#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;
};
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。