Ver código fonte

增加request获取临时数据

NH 1 ano atrás
pai
commit
820dacfbdc
3 arquivos alterados com 38 adições e 24 exclusões
  1. 13 0
      src/module/http/request.cpp
  2. 1 0
      src/module/http/request.h
  3. 24 24
      tests/fastweb.cpp

+ 13 - 0
src/module/http/request.cpp

@@ -133,6 +133,18 @@ std::string module::request::get(const std::string& name)
 {
     return m_request->reqpack()->extra()[name].to<std::string>();
 }
+sol::table module::request::gets(sol::this_state s)
+{
+    sol::state_view lua(s);
+    sol::table result_table = lua.create_table();
+
+
+    auto keys = m_request->reqpack()->extra().keys();
+    for (size_t i = 0; i < keys.size(); i++)
+        result_table[keys[i]] = m_request->reqpack()->extra()[keys[i]].to<std::string>();
+
+    return result_table;
+}
 network::http::website* module::request::website()
 {
     return m_request->website();
@@ -160,6 +172,7 @@ void module::request::regist(sol::state* lua)
         "multipart_content", &module::request::multipart_content,
         "multipart_content_save", &module::request::multipart_content_save,
         "get", &module::request::get,
+        "gets", &module::request::gets,
         "set", &module::request::set,
         "save_body", &module::request::save_body
     );

+ 1 - 0
src/module/http/request.h

@@ -111,6 +111,7 @@ namespace module
         /// <param name="name"></param>
         /// <returns></returns>
         std::string get(const std::string& name);
+        sol::table gets(sol::this_state s);
         /// <summary>
         /// 网站指针
         /// </summary>

+ 24 - 24
tests/fastweb.cpp

@@ -448,30 +448,30 @@ void fastweb::install_module_linux(fastweb::module_info info)
 }
 #else
 void fastweb::install_module_windows(fastweb::module_info info)
-{
-
-    std::cout<<"正在安装 `"<<info.name_en<<"` 库"<<std::endl;
-    network::http::client_plus client;
-    if(client.get(info.download_win64) == false)
-    {
-        std::cerr<<"下载模块压缩包失败: "<<info.download_win64<<", "<<client.last_error()<<std::endl;
-        return;
-    }
-    if(client.status() != 200)
-    {
-        std::cerr<<"下载模块压缩包失败: "<<info.download_win64<<", status: "<<client.status()<<std::endl;
-        return;
-    }
-    std::string zip_filepath = ylib::file::temp_filepath()+".zip";
-    ylib::file::write(zip_filepath,client.response());
-
-    
-    std::string new_module_dirpath = m_ini.read("scripts","module_dir")+"/.install/"+info.id;
-    ylib::file::create_dir(new_module_dirpath,true);
-
-
-    zip_extract(zip_filepath.c_str(), new_module_dirpath.c_str(), nullptr, nullptr);
-    std::cerr<<"安装成功"<<std::endl;
+{ 
+
+    //std::cout<<"正在安装 `"<<info.name_en<<"` 库"<<std::endl;
+    //network::http::client_plus client;
+    //if(client.get(info.download_win64) == false)
+    //{
+    //    std::cerr<<"下载模块压缩包失败: "<<info.download_win64<<", "<<client.last_error()<<std::endl;
+    //    return;
+    //}
+    //if(client.status() != 200)
+    //{
+    //    std::cerr<<"下载模块压缩包失败: "<<info.download_win64<<", status: "<<client.status()<<std::endl;
+    //    return;
+    //}
+    //std::string zip_filepath = ylib::file::temp_filepath()+".zip";
+    //ylib::file::write(zip_filepath,client.response());
+
+    //
+    //std::string new_module_dirpath = m_ini.read("scripts","module_dir")+"/.install/"+info.id;
+    //ylib::file::create_dir(new_module_dirpath,true);
+
+
+    //zip_extract(zip_filepath.c_str(), new_module_dirpath.c_str(), nullptr, nullptr);
+    //std::cerr<<"安装成功"<<std::endl;
 }
 #endif
 bool fastweb::parse_config(const std::string &ini_filepath)