Ver código fonte

HttpMessage::GetHeader HttpRequest::GetParam

hewei 5 anos atrás
pai
commit
d0057874d7
4 arquivos alterados com 21 adições e 4 exclusões
  1. 1 2
      etc/httpd.conf
  2. 1 2
      etc/test.conf
  3. 3 0
      examples/httpd/http_api_test.h
  4. 16 0
      http/HttpMessage.h

+ 1 - 2
etc/httpd.conf

@@ -6,8 +6,7 @@ loglevel = INFO
 log_remain_days = 3
 log_filesize = 64M
 
-# worker_processes = 4
-# auto = ncpu
+# worker_processes = auto # auto = ncpu
 worker_processes = 4
 
 # http server

+ 1 - 2
etc/test.conf

@@ -6,8 +6,7 @@ loglevel = DEBUG
 log_remain_days = 3
 log_filesize = 16M
 
-# worker_processes = 4
-# auto = ncpu
+# worker_processes = auto # auto = ncpu
 worker_processes = auto
 worker_threads = 2
 

+ 3 - 0
examples/httpd/http_api_test.h

@@ -119,6 +119,9 @@ inline int http_api_test(HttpRequest* req, HttpResponse* res) {
 
 inline int http_api_restful(HttpRequest*req, HttpResponse* res) {
     // RESTful /:field/ => HttpRequest::query_params
+    // path=/group/:group_name/user/:user_id
+    //string group_name = req->GetParam("group_name");
+    //string user_id = req->GetParam("user_id");
     for (auto& param : req->query_params) {
         res->Set(param.first.c_str(), param.second);
     }

+ 16 - 0
http/HttpMessage.h

@@ -96,6 +96,14 @@ public:
     // body.size -> content_length <-> headers Content-Length
     void FillContentLength();
 
+    std::string GetHeader(const char* key) {
+        auto iter = headers.find(key);
+        if (iter != headers.end()) {
+            return iter->second;
+        }
+        return "";
+    }
+
     // headers -> string
     void DumpHeaders(std::string& str);
     // structured content -> body
@@ -167,6 +175,14 @@ public:
 
     virtual std::string Dump(bool is_dump_headers, bool is_dump_body);
 
+    std::string GetParam(const char* key) {
+        auto iter = query_params.find(key);
+        if (iter != query_params.end()) {
+            return iter->second;
+        }
+        return "";
+    }
+
     // structed url -> url
     void DumpUrl();
     // url -> structed url