cinatra簡易入門教程


2020年6月11日09:15:53

vs 2019  boost 1.71

github :https://github.com/qicosmos/cinatra

注意:本文是中文版本的vs

1,新建空白c++ windows 項目

文件->新建->項目

選擇語言 c++,空項目

2,下載源代碼,吧源代碼加入到vs項目里面

去github上下載一下源代碼,核心的只保留 example 和include目錄到項目目錄

項目目錄點擊項目右鍵,在文件資源管理器中打開文件夾,

在解決方案資源管理器上有一排小logo,點擊 “顯示所有文件夾”選中狀態,你會發現你復制進去的代碼

但是文件是紅色的,點擊文件和文件夾 右鍵 "包含在項目中",然后圖標的顏色就恢復正常了

3,添加boost,設置語言標准 std:c++ 17,附加boost到項目里面去

怎么安裝boost,https://www.cnblogs.com/zx-admin/p/11792567.html

右擊項目->屬性->C/C++->語言->C++ 語言標准

選擇iso c++ 17

附加目錄

先編譯好編譯boost

項目——>屬性——>選擇VC++目錄,在包含目錄 和 庫目錄添加以上2個路徑

包含目錄加上 上 D:\boost_1_71_0\

庫目錄加上 D:\boost_1_71_0\stage\lib

4,解決運行相關錯誤

錯誤1:This function or variable may be unsafe

_CRT_SECURE_NO_WARNINGS

參考:https://jingyan.baidu.com/article/49711c616b8a1ffa441b7cdc.html

錯誤2:C4996'std::codecvt_utf8<wchar_t,1114111,(std::codecvt_mode)0>':

在url_encode_decode.hpp上加入#pragma warning(disable:4996),抑制一下警告就ok了

5,相關說明

測試demo example 里面的main.cpp

復制代碼

#include <iostream>
#include "../include/cinatra.hpp"

using namespace cinatra;


int main() {

    http_server server(std::thread::hardware_concurrency());
    bool r = server.listen("0.0.0.0", "8090");
    if (!r) {
        //LOG_INFO << "listen failed";
        return -1;
    }

    //server.on_connection([](auto conn) { return true; });
    server.set_http_handler<GET, POST>("/", [](request& req, response& res) mutable {
        res.set_status_and_content(status_type::ok, "hello world");
        //res.set_status_and_content(status_type::ok, std::move(str));
        });

    server.set_http_handler<GET>("/plaintext", [](request& req, response& res) {
        //res.set_status_and_content<status_type::ok, res_content_type::string>("Hello, World!");
        res.set_status_and_content(status_type::ok, "Hello, World!", req_content_type::string);
        });

    server.run();
    return 0;
}

運行成功之后,訪問

127.0.0.1:8090 就ok了


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM