• 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:oost_1_71_0

    库目录加上 D:oost_1_71_0stagelib

    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了

  • 相关阅读:
    360删除、修改注册表问题
    朗姆达表达式类似IN查询条件
    SQL 分组排序、CASE...WHEN...、是否为空 查询
    Excel 复制Sql查询结果错位
    redis实现购物车秒杀原理
    sphinx的使用
    linux安装
    linux和windows的区别
    Yii2.0实现语言包切换功能
    Linux的7个级别
  • 原文地址:https://www.cnblogs.com/zx-admin/p/13091320.html
Copyright © 2020-2023  润新知