29 std::string
str()
const {
30 std::ostringstream oss;
35 oss <<
"; domain=" <<
domain;
37 oss <<
"; path=" <<
path;
49 std::map<std::string, Cookie, ASCIICINullSafeComparator>
cookies;
60 void keyValuePair(
const std::string &keyvalue, std::string &key, std::string &value) {
62 pos = keyvalue.find(
"=");
63 if (pos == std::string::npos)
throw "Not a Key-Value pair (cookie)";
64 key = std::string(keyvalue.begin(), keyvalue.begin()+pos);
65 value = std::string(keyvalue.begin()+pos+1, keyvalue.end());
74 while(pos < cookiestr.size()) {
75 if (cookiestr.compare(pos, 7,
"expires") ==0 ||
76 cookiestr.compare(pos, 6,
"domain") ==0 ||
77 cookiestr.compare(pos, 4,
"path") ==0) {
80 std::string key, value, s;
81 npos = cookiestr.find(
"; ", pos);
82 if (npos == std::string::npos) {
84 s = std::string(cookiestr.begin() + pos + 1, cookiestr.end());
85 pos = cookiestr.size();
87 s = std::string(cookiestr.begin() + pos + 1, cookiestr.begin() + npos - 1);
94 for(std::list<Cookie>::iterator i = cookies.begin(); i != cookies.end(); i++)
96 }
else if (s ==
"domain") {
97 for(std::list<Cookie>::iterator i = cookies.begin(); i != cookies.end(); i++)
99 }
else if (s ==
"path") {
100 for(std::list<Cookie>::iterator i = cookies.begin(); i != cookies.end(); i++)
103 }
else if (cookiestr.compare(pos, 8,
"httpOnly")==0) {
105 for(std::list<Cookie>::iterator i = cookies.begin(); i != cookies.end(); i++)
107 }
else if (cookiestr.compare(pos, 6,
"secure") ==0) {
109 for(std::list<Cookie>::iterator i = cookies.begin(); i != cookies.end(); i++)
111 }
else if (cstate == 0) {
114 npos = cookiestr.find(
"; ", pos);
115 if (npos == std::string::npos) {
117 s = std::string(cookiestr.begin() + pos, cookiestr.end());
118 pos = cookiestr.size();
120 s = std::string(cookiestr.begin() + pos, cookiestr.begin() + npos);
126 cookies.push_back(c);
127 }
else if (cstate == 1) {
134 for(std::list<Cookie>::iterator i = cookies.begin(); i != cookies.end(); i++) {
135 this->cookies[i->name] = *i;
Cookie(const Cookie &rhs)
Set the cookie to empty value.
Definition: cookie.hpp:11
bool httponly
Definition: cookie.hpp:23
std::map< std::string, Cookie, ASCIICINullSafeComparator > cookies
Definition: cookie.hpp:49
std::string name
Definition: cookie.hpp:26
static std::string encodeURL(const std::string &component, bool asUrl=true)
Definition: utility.hpp:233
CookieJar()
Definition: cookie.hpp:51
std::string value
Definition: cookie.hpp:27
void keyValuePair(const std::string &keyvalue, std::string &key, std::string &value)
Definition: cookie.hpp:60
Cookie()
Definition: cookie.hpp:5
static std::string decodeURL(const std::string &component)
Definition: utility.hpp:204
void clear()
Definition: cookie.hpp:56
Definition: utility.hpp:25
Definition: cookie.hpp:47
bool secure
Definition: cookie.hpp:24
void parseCookie(const std::string &cookie_date)
Definition: utility.hpp:172
std::string path
Definition: cookie.hpp:22
bool isSet
Definition: utility.hpp:27
DateTime expires
Definition: cookie.hpp:18
CookieJar(const CookieJar &rhs)
Definition: cookie.hpp:52
std::string domain
Definition: cookie.hpp:21
std::string str() const
Definition: cookie.hpp:29
std::string cookie_str() const
Definition: utility.hpp:137
void parseCookieHeader(const std::string &cookiestr)
Definition: cookie.hpp:68