| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113 |
- #pragma once
- #include "http_define.h"
- #if USE_NET_HTTP_WEBSITE
- #include "http_server.h"
- #include "util/strutils.h"
- #include "util/time.h"
- namespace ylib
- {
- namespace network
- {
- namespace http
- {
- class server;
- class response;
- class request;
- class website;
- /*************************************************************************
- * class:请求包
- *************************************************************************/
- class reqpack
- {
- public:
- reqpack();
- ~reqpack();
- void init(const std::string& url, const std::string& host, const ylib::buffer& data, uint64 connid, network::http::server* server);
- void clear();
- network::http::request* request();
- network::http::response* response();
- const std::string& host()
- {
- /*获取基本请求信息*/
- return m_host;
- }
- network::http::method method();
- const std::string& filepath();
- void filepath(const std::string& path);
- network::http::server* server()
- {
- return m_server;
- }
- ylib::buffer& data()
- {
- return m_data;
- }
- const std::string& url()
- {
- return m_url;
- }
- const std::string& referrer()
- {
- return m_referrer;
- }
- const uint64& connid()
- {
- return m_connid;
- }
- network::http::website* website() {
- return m_website;
- }
- void website(network::http::website* website) {
- m_website = website;
- }
- timestamp begin_msec() {
- return m_begin_msec;
- }
- std::string exec_msec() {
- return std::to_string(time::now_msec() - m_begin_msec);
- }
- const std::string& remote() {
- if (m_remote_ipaddress.empty()) {
- ushort port;
- m_server->remote(connid(), m_remote_ipaddress, port);
- }
- return m_remote_ipaddress;
- }
- ylib::json& extra() { return m_extra; }
- private:
- // 请求主机
- std::string m_host;
- // 请求方式
- network::http::method m_method;
- // 请求路径
- std::string m_filepath;
- // HPSERVER
- network::http::server* m_server;
- // 转发来路
- std::string m_referrer;
- // 请求ID
- uint64 m_connid;
- // 站点
- network::http::website* m_website;
- // 接收数据
- ylib::buffer m_data;
- // URL
- std::string m_url;
- // 请求发起时间
- timestamp m_begin_msec;
- // 远程IP
- std::string m_remote_ipaddress;
- // 附加数据
- ylib::json m_extra;
- private:
- network::http::request* m_request;
- network::http::response* m_response;
- };
- }
- }
- }
- #endif
|