mirror of
https://github.com/ZLMediaKit/ZLMediaKit.git
synced 2026-06-21 08:22:21 +08:00
完成http客户端cookie自动保存和设置
This commit is contained in:
52
src/Http/HttpCookie.h
Normal file
52
src/Http/HttpCookie.h
Normal file
@@ -0,0 +1,52 @@
|
||||
//
|
||||
// Created by xzl on 2018/9/23.
|
||||
//
|
||||
|
||||
#ifndef ZLMEDIAKIT_HTTPCOOKIE_H
|
||||
#define ZLMEDIAKIT_HTTPCOOKIE_H
|
||||
|
||||
#include <string>
|
||||
#include <memory>
|
||||
#include <vector>
|
||||
#include <unordered_map>
|
||||
#include <mutex>
|
||||
using namespace std;
|
||||
|
||||
class HttpCookie {
|
||||
public:
|
||||
typedef std::shared_ptr<HttpCookie> Ptr;
|
||||
friend class HttpCookieStorage;
|
||||
HttpCookie(){}
|
||||
~HttpCookie(){}
|
||||
|
||||
void setPath(const string &path);
|
||||
void setHost(const string &host);
|
||||
void setExpires(const string &expires);
|
||||
void setKeyVal(const string &key,const string &val);
|
||||
operator bool ();
|
||||
|
||||
const string &getKey() const ;
|
||||
const string &getVal() const ;
|
||||
private:
|
||||
string _host;
|
||||
string _path = "/";
|
||||
uint32_t _expire = 0;
|
||||
string _key;
|
||||
string _val;
|
||||
};
|
||||
|
||||
|
||||
class HttpCookieStorage{
|
||||
public:
|
||||
~HttpCookieStorage(){}
|
||||
static HttpCookieStorage &Instance();
|
||||
void set(const HttpCookie::Ptr &cookie);
|
||||
vector<HttpCookie::Ptr> get(const string &host,const string &path);
|
||||
private:
|
||||
HttpCookieStorage(){};
|
||||
private:
|
||||
unordered_map<string,unordered_map<string,HttpCookie::Ptr> > _all_cookie;
|
||||
mutex _mtx_cookie;
|
||||
};
|
||||
|
||||
#endif //ZLMEDIAKIT_HTTPCOOKIE_H
|
||||
Reference in New Issue
Block a user