1. 程式人生 > >c++封裝簡易http(基於microhttpd)

c++封裝簡易http(基於microhttpd)

使用例子:

#include "httpservice.hpp"
#include "boost/bind.hpp"
#include <iostream>

using namespace std;


void handle_test1(boost::shared_ptr<Response> res, boost::shared_ptr<Request> req){
	res->write(req->body());
}

class CLASSA {
public:
	CLASSA(){};

	void handle_test2(boost::shared_ptr<Response> res, boost::shared_ptr<Request> req){
		//cout << "收到引數: name" << req->query<std::string>("name") << ", age:" << req->query<int>("age") << endl; 
		res->set_header("Content-Type", "application/json");
		res->write("{\"name\":\"button\", \"age\":100}");
	}
};

int main()
{
	LsHTTP http(8888);
	// 可以用自由函式註冊
	http.POST("/chen/test1", handle_test1);
	// 可以用成員函式註冊
	CLASSA testclass;
	http.GET("/chen/test2", boost::bind(&CLASSA::handle_test2, &testclass, _1, _2));
	// 可以用lambda註冊
	http.GET("/chen/test3", [](boost::shared_ptr<Response> res, boost::shared_ptr<Request> req){
		res->write("handle test3 url request");
	});

	http.run();

	(void) getchar ();
	return 0;
}

目前使用 vs2010編譯的, 下載工程:  點選開啟連結