IPBS_Station/SDK/CCServlet/include/CCResponse.h

66 lines
1.5 KiB
C
Raw Normal View History

2024-08-13 17:07:34 +08:00
#ifndef CCWeb_Response_H
#define CCWeb_Response_H
#pragma once
#include "CCRequest.h"
#include "../../include/CCSocket.h"
#include "CCString.h"
#include "mutex"
2024-11-01 16:09:31 +08:00
#include <openssl/sha.h>
#include <openssl/bio.h>
#include <openssl/evp.h>
#include <openssl/buffer.h>
2024-08-13 17:07:34 +08:00
class HTTPResponse: public CCRequest, public CORS {
public:
HTTPResponse() = default;
HTTPResponse(CCSocket& socket,CORS& cors);
void HtmlTextWrite(const CCString& str);
bool HtmlWrite(const CCString& str);
void Write(const CCString& str,const char* type = "text/plain");
2024-11-01 16:09:31 +08:00
void Write(char * data,size_t length);
void HTTPWrite(const CCString& str);
bool WriteMultipart(const CCString& Path);
bool FileDownload(const CCString& Path);
2024-08-13 17:07:34 +08:00
void Send(const CCString& string);
void ResponseOK();
2024-11-01 16:09:31 +08:00
CCString ResopenseWebSocket(const CCString& Key);
void SetHeader(const CCString& Key,CCString Value);
bool IsConnect();
std::map<CCString,CCString> GetHeaders();
2024-08-13 17:07:34 +08:00
private:
bool SendResources(const char* Path, const char* Mode = "rb");
2024-11-01 16:09:31 +08:00
CCString base64_encode(const unsigned char *data, size_t length);
CCString sha1(const CCString& input);
2024-08-13 17:07:34 +08:00
CCSocket Client;
std::mutex Mutex;
CORS CORSConfig;
2024-11-01 16:09:31 +08:00
std::map<CCString,CCString> Headers;
std::streamoff getFileSize(const std::string& filePath);
2024-08-13 17:07:34 +08:00
private:
};
class CCResponse:public HTTPResponse
{
public:
public:
CCResponse() = default;
CCResponse(CCSocket& socket,CORS& cors);
2024-11-01 16:09:31 +08:00
HTTPResponse GetWriter();
2024-08-13 17:07:34 +08:00
private:
CCSocket Client;
CORS Cors;
};
#endif