Преглед изворни кода

增加获取全部请求头

NH пре 1 година
родитељ
комит
90639f939f
2 измењених фајлова са 21 додато и 1 уклоњено
  1. 1 0
      include/net/http_request.h
  2. 20 1
      src/net/http_request.cpp

+ 1 - 0
include/net/http_request.h

@@ -29,6 +29,7 @@ namespace ylib
                 /// <param name="value"></param>
                 /// <returns></returns>
                 bool header(const std::string& name, std::string& value);
+                std::vector<ylib::KeyValue<std::string, std::string>> headers();
                 /// <summary>
                 /// 请求动作
                 /// </summary>

+ 20 - 1
src/net/http_request.cpp

@@ -46,7 +46,26 @@ bool ylib::network::http::request::header(const std::string &name, std::string &
     value = strutils::F(lpszValue);
     return true;
 }
-
+std::vector<ylib::KeyValue<std::string, std::string>> ylib::network::http::request::headers()
+{
+	std::vector<ylib::KeyValue<std::string, std::string>> hs;
+    DWORD dwHeaderCount = 0;
+    HPSERVER->GetAllHeaders((CONNID)m_reqpack->connid(), nullptr, dwHeaderCount);
+	if (dwHeaderCount > 0)
+	{
+        THeader* headers = new THeader[dwHeaderCount];
+        HPSERVER->GetAllHeaders((CONNID)m_reqpack->connid(), headers, dwHeaderCount);
+        for (DWORD i = 0; i < dwHeaderCount; i++)
+        {
+            ylib::KeyValue<std::string,std::string  > kv;
+			kv.name = strutils::F(headers[i].name);
+			kv.value = strutils::F(headers[i].value);
+            hs.push_back(kv);
+        }
+        delete[] headers;
+    }
+    return hs;
+}
 std::string ylib::network::http::request::method()
 {
     if (m_method.empty())