使用C++搭建简单服务器与浏览器交互,使用cpp-httplib

文章目录

      • cpp-httplip github
      • service code
      • html code
      • 目录结构
      • json库

cpp-httplip github

lgithub地址

service code

#include "http_service.h"
#include "../json/include/nlohmann/json.hpp"
#include 
#include 

using namespace std;
using json = nlohmann::json; 

void string2num(string str, double &num)
{
	stringstream ss;
	ss << str;
	ss >> num;
}

int main(void)
{
	using namespace httplib;
	Server svr; // 创建服务器对象
	svr.set_base_dir("../../http_service"); 
	// 网址根目录,你看httplib源码会发现 首页默认为index.thml
	svr.Get("/add", [](const Request& req, Response& res) {
		json j; // json用于信息传递
		double a, b;
		string2num(req.get_param_value("a").c_str(), a);
		string2num(req.get_param_value("b").c_str(), b);
		double ans = a + b;
		j["ans"] = ans;
		res.set_content(j.dump(), "text/plain");
		//res.set_content_provider();
	});
	svr.listen("localhost", 3333); // 启动服务
}

效果很简陋,前端不会QAQ
使用C++搭建简单服务器与浏览器交互,使用cpp-httplib_第1张图片

html code

<html>
<head> 
<meta charset="utf-8"> 
<title>multiplytitle> 

head>
<body>
A: <br> B: <br> ans:
div><br> form> <p>点击"提交"按钮,表单数据将被发送到服务器上的“add”程序上。p> body> <script src="http://apps.bdimg.com/libs/jquery/2.1.4/jquery.min.js">script> <script type="text/javascript"> $("#submit").on("click",function(){ var a = $("#form1 input:eq(0)").val(); var b = $("#form1 input:eq(1)").val(); $.ajax({ //几个参数需要注意一下 type: "GET",//方法类型 dataType: "json",//预期服务器返回的数据类型 url:"add" ,//url data: {"a":a,"b":b}, success: function (result) { $("#ans").text(result.ans); console.log(result.ans);//打印服务端返回的数据(调试用) if (result.resultCode == 200) { alert("SUCCESS"); }; }, error : function() { alert("异常!"); } }); return false; }) script> html>

目录结构

使用C++搭建简单服务器与浏览器交互,使用cpp-httplib_第2张图片

json库

。。。算了json就是最大的文件夹了,我还是把整个项目放github上吧

github地址

你可能感兴趣的:(C++)