cpp-httplib用法入门

下载:https://github.com/yhirose/cpp-httplib

编译:

解压压缩包,可以看到所有的代码都包含在httplib.h这个头文件中,httplib本身是无须编译的。
但是对使用者来说,在linux平台,httplib要求gcc必须高于4.8,像centos7环境必须升级gcc。
在windows平台,httplib要求vs至少是2015以上,或者qt版本5.9以上。

此外,如果需要使用HTTPS,httplib还依赖openssl 1.1.1。

使用HTTP:

下面用一个简单的例子,说明在linux、vs、qt如何使用。

代码,保存为test.cpp:

#include <stdio.h>
#include <stdlib.h>
#include "httplib.h"

void doGetHi(const httplib::Request& req, httplib::Response& res)
{
    res.set_content("hi", "text/plain");
}

int main(int argc, char *argv[])
{
    httplib::Server server;
    server.Get("/hi", doGetHi);
    server.listen("0.0.0.0", 8081);
    return 0;
}

liunx下编译:
g++ -o test test.cpp -pthread

vs下编译:
将httplib.h拷贝到工程目录,或者配置好头文件依赖,按F7编译。

qt下编译:
将httplib.h拷贝到工程目录,或者配置好头文件和库依赖,需修改.pro工程文件,添加:
INCLUDEPATH += 包含目录
LIBS += -lWs2_32
然后编译。

使用HTTPS:

修改代码为:

#include <stdio.h>
#include <stdlib.h>

#define CPPHTTPLIB_OPENSSL_SUPPORT
#include "httplib.h"

void doGetHi(const httplib::Request& req, httplib::Response& res)
{
    res.set_content("hi", "text/plain");
}

int main(int argc, char *argv[])
{
    httplib::SSLServer server("./server.crt", "./server.key");
    server.Get("/hi", doGetHi);
    server.listen("0.0.0.0", 8081);
    return 0;
}

编译,以linux举例,执行命令:
g++ -o test test.cpp -I/usr/local/openssl/include -L/usr/local/openssl/lib -lssl -lcrypto -pthread

客户端使用curl命令:
curl https://127.0.0.1:8081/hi -k
-k选项表明不要对证书进行认证。

制作自签证书:
命令如下:
openssl genrsa -out server.key 1024
openssl req -new -key server.key -out server.csr
openssl x509 -days 1024 -req -in server.csr -signkey server.key -out server.crt

© 版权声明
THE END
如果内容对您有所帮助,就支持一下吧!
点赞0 分享
扭的头像 - 鹿快
评论 抢沙发

请登录后发表评论

    暂无评论内容