1
0
ithewei 4 жил өмнө
parent
commit
70430b8e2b

+ 2 - 0
cpputil/hstring.cpp

@@ -7,6 +7,8 @@
 
 namespace hv {
 
+std::string empty_string;
+
 std::string& toupper(std::string& str) {
     // std::transform(str.begin(), str.end(), str.begin(), ::toupper);
     char* p = (char*)str.c_str();

+ 2 - 0
cpputil/hstring.h

@@ -16,6 +16,8 @@
 
 namespace hv {
 
+HV_EXPORT extern std::string empty_string;
+
 typedef std::vector<std::string> StringList;
 
 // std::map<std::string, std::string, StringCaseLess>

+ 1 - 1
http/HttpMessage.cpp

@@ -54,7 +54,7 @@ bool HttpCookie::parse(const std::string& str) {
                         stricmp(val.c_str(), "None")   == 0 ? HttpCookie::SameSite::None   :
                                                               HttpCookie::SameSite::Default;
         }
-        else if (val.size() > 0) {
+        else if (value.empty() && !val.empty()) {
             name = key;
             value = val;
         }

+ 4 - 4
http/HttpMessage.h

@@ -194,7 +194,7 @@ public:
         }
         return form;
     }
-    std::string GetFormData(const char* name, const std::string& defvalue = "") {
+    std::string GetFormData(const char* name, const std::string& defvalue = hv::empty_string) {
         if (form.empty() && ContentType() == MULTIPART_FORM_DATA) {
             ParseBody();
         }
@@ -232,7 +232,7 @@ public:
         }
         return kv;
     }
-    std::string GetUrlEncoded(const char* key, const std::string& defvalue = "") {
+    std::string GetUrlEncoded(const char* key, const std::string& defvalue = hv::empty_string) {
         if (kv.empty() && ContentType() == X_WWW_FORM_URLENCODED) {
             ParseBody();
         }
@@ -279,7 +279,7 @@ public:
     void SetHeader(const char* key, const std::string& value) {
         headers[key] = value;
     }
-    std::string GetHeader(const char* key, const std::string& defvalue = "") {
+    std::string GetHeader(const char* key, const std::string& defvalue = hv::empty_string) {
         auto iter = headers.find(key);
         return iter == headers.end() ? defvalue : iter->second;
     }
@@ -458,7 +458,7 @@ public:
     void SetParam(const char* key, const T& t) {
         query_params[key] = hv::to_string(t);
     }
-    std::string GetParam(const char* key, const std::string& defvalue = "") {
+    std::string GetParam(const char* key, const std::string& defvalue = hv::empty_string) {
         auto iter = query_params.find(key);
         return iter == query_params.end() ? defvalue : iter->second;
     }

+ 5 - 5
http/server/HttpContext.h

@@ -40,7 +40,7 @@ struct HV_EXPORT HttpContext {
         return request->headers;
     }
 
-    std::string header(const char* key, const std::string& defvalue = "") {
+    std::string header(const char* key, const std::string& defvalue = hv::empty_string) {
         return request->GetHeader(key, defvalue);
     }
 
@@ -48,7 +48,7 @@ struct HV_EXPORT HttpContext {
         return request->query_params;
     }
 
-    std::string param(const char* key, const std::string& defvalue = "") {
+    std::string param(const char* key, const std::string& defvalue = hv::empty_string) {
         return request->GetParam(key, defvalue);
     }
 
@@ -82,7 +82,7 @@ struct HV_EXPORT HttpContext {
     const MultiPart& form() {
         return request->GetForm();
     }
-    std::string form(const char* name, const std::string& defvalue = "") {
+    std::string form(const char* name, const std::string& defvalue = hv::empty_string) {
         return request->GetFormData(name, defvalue);
     }
 
@@ -90,7 +90,7 @@ struct HV_EXPORT HttpContext {
     const hv::KeyValue& urlencoded() {
         return request->GetUrlEncoded();
     }
-    std::string urlencoded(const char* key, const std::string& defvalue = "") {
+    std::string urlencoded(const char* key, const std::string& defvalue = hv::empty_string) {
         return request->GetUrlEncoded(key, defvalue);
     }
 
@@ -99,7 +99,7 @@ struct HV_EXPORT HttpContext {
     T get(const char* key, T defvalue = 0) {
         return request->Get(key, defvalue);
     }
-    std::string get(const char* key, const std::string& defvalue = "") {
+    std::string get(const char* key, const std::string& defvalue = hv::empty_string) {
         return request->GetString(key, defvalue);
     }
 #endif