解析,响应Http/https请求的操作类 仅传入套接字,然后使用这个类进行Http的操作 更多...
#include <sttnet.h>
Public 成员函数 | |
| void | setFD (const int &fd, SSL *ssl=nullptr, const bool &flag1=false, const bool &flag2=true) |
| 初始化对象,传入套接字等参数 更多... | |
| int | solveRequest (TcpFDInf &TcpInf, HttpRequestInformation &HttpInf, const unsigned long &buffer_size, const int ×=1) |
| 解析Http/Https请求 更多... | |
| bool | sendBack (const std::string &data, const std::string &header="", const std::string &code="200 OK", const std::string &header1="") |
| 发送Http/Https响应 更多... | |
| bool | sendBack (const char *data, const size_t &length, const char *header="\0", const char *code="200 OK\0", const char *header1="\0", const size_t &header_length=50) |
| 发送Http/Https响应 更多... | |
Public 成员函数 继承自 stt::network::TcpFDHandler | |
| void | setFD (const int &fd, SSL *ssl, const bool &flag1=false, const bool &flag2=false, const int &sec=-1) |
| 传入套接字初始化对象 更多... | |
| int | getFD () |
| 获取该对象的套接字 更多... | |
| SSL * | getSSL () |
| 获取该对象的加密SSL句柄 更多... | |
| void | close (const bool &cle=true) |
| 关闭对象 更多... | |
| void | blockSet (const int &sec=-1) |
| 设置对象中的套接字为阻塞模式 更多... | |
| void | unblockSet () |
| 设置对象中的套接字为非阻塞模式 更多... | |
| bool | multiUseSet () |
| 设置对象中的套接字为SO_REUSEADDR模式 更多... | |
| bool | isConnect () |
| 判断对象是否有套接字绑定 更多... | |
| int | sendData (const std::string &data, const bool &block=true) |
| 向已连接的套接字发送字符串数据。 更多... | |
| int | sendData (const char *data, const uint64_t &length, const bool &block=true) |
| 向已连接的套接字发送指定长度的二进制数据。 更多... | |
| int | recvDataByLength (std::string &data, const uint64_t &length, const int &sec=2) |
| 从已连接的套接字中阻塞接收指定长度的数据到字符串 更多... | |
| int | recvDataByLength (char *data, const uint64_t &length, const int &sec=2) |
| 从已连接的套接字中阻塞接收指定长度的数据到char*容器 更多... | |
| int | recvData (std::string &data, const uint64_t &length) |
| 从已连接的套接字中接收一次数据到string字符串容器 更多... | |
| int | recvData (char *data, const uint64_t &length) |
| 从已连接的套接字中接收一次数据到char*容器 更多... | |
额外继承的成员函数 | |
Public 属性 继承自 stt::network::TcpFDHandler | |
| bool | flag3 =false |
| 如果sendData的block=true,如果发送过程中连接断开,这个标志位会置为true 更多... | |
Protected 属性 继承自 stt::network::TcpFDHandler | |
| int | fd =-1 |
| bool | flag1 =false |
| bool | flag2 =false |
| SSL * | ssl =nullptr |
| int | sec =-1 |
解析,响应Http/https请求的操作类 仅传入套接字,然后使用这个类进行Http的操作
| bool stt::network::HttpServerFDHandler::sendBack | ( | const std::string & | data, |
| const std::string & | header = "", |
||
| const std::string & | code = "200 OK", |
||
| const std::string & | header1 = "" |
||
| ) |
发送Http/Https响应
| data | 装着响应体的数据的string容器 |
| code | Http响应状态码和状态说明 (默认是 200 OK) |
| header | Http请求头;如果不是用createHeader生成,记得在末尾要加上 。 |
| header1 | HTTP请求头的附加项;如果需要,一定要填入一个有效项;末尾不需要加入 (不能用createHeader)。(比如可以默认填入keepalive项) |
| bool stt::network::HttpServerFDHandler::sendBack | ( | const char * | data, |
| const size_t & | length, | ||
| const char * | header = "\0", |
||
| const char * | code = "200 OK\0", |
||
| const char * | header1 = "\0", |
||
| const size_t & | header_length = 50 |
||
| ) |
发送Http/Https响应
| data | 装着响应体的数据的char *容器 |
| length | char*容器中的数据长度 |
| code | Http响应状态码和状态说明 (默认是 200 OK) |
| header | Http请求头;如果不是用createHeader生成,记得在末尾要加上 。 |
| header1 | HTTP请求头的附加项;如果需要,一定要填入一个有效项;末尾不需要加入 (不能用createHeader)。(比如可以默认填入keepalive项) |
| header_length | 响应头部加起来的最大长度(默认为50) |
|
inline |
初始化对象,传入套接字等参数
| fd | 套接字 |
| ssl | TLS加密的SSL句柄(默认为nullptr) |
| flag1 | true:启用非阻塞模式 false:启用阻塞模式 (默认为false,即启用阻塞模式) |
| flag2 | true:启用SO_REUSEADDR模式 false:不启用SO_REUSEADDR模式 (默认为true,即启用SO_REUSEADDR模式) |
| int stt::network::HttpServerFDHandler::solveRequest | ( | TcpFDInf & | TcpInf, |
| HttpRequestInformation & | HttpInf, | ||
| const unsigned long & | buffer_size, | ||
| const int & | times = 1 |
||
| ) |
解析Http/Https请求
| TcpInf | 存放底层tcp处理套接字的信息 |
| HttpInf | 存放Http协议的信息 |
| buffer_size | 服务器定义的解析缓冲区的大小(单位为字节) |
| times | 记录解析的次数,某些场景会用上 |
0 初始状态 1 接收请求头中 2 接收请求体中(chunk模式) 3 接收请求体中(非chunk模式)
1.8.5