Files
MINWebServer/test_minweb_server_library.cpp
T
2020-12-11 10:09:00 +08:00

70 lines
2.1 KiB
C++

//
// Created by SunnyQjm on 2020/12/8 上午9:06.
//
#include <iostream>
#include "MINWebServer/server/Service.h"
#include "MINWebServer/server/Server.h"
#include "MINWebServer/message/MINWebRequest.h"
#include "MINWebServer/message/MINWebResponse.h"
using namespace MIN;
using namespace MIN::MINWebServer;
class MINHttpServerImpl : public MINHttpServer {
public:
void setOnRequestListener(const OnRequestReceiveListener &onRequestReceiveListener) override {
this->listener = onRequestReceiveListener;
}
void replyResponse(std::shared_ptr<MIN::MINWebResponse> response) override {
std::cout << std::string((char *)response->content, response->contentLength) << std::endl;
std::cout << response->body << std::endl;
}
void start(bool wait) override {
MINWebRequest request;
request.service = "/MIN/Web/test";
request.url = "/MIN/Web/test/getUserInfo?id=1";
request.path = "/getUserInfo?id=1";
// request.path = "/test.cpp";
request.method = MIN_HTTP_GET;
auto requestPtr = make_shared<MINWebRequest>(request);
this->listener(requestPtr);
}
private:
OnRequestReceiveListener listener;
};
int main () {
Service service;
service.documentRoot = "/var/www";
service.indexOf = "/sunnyqjm.github.io";
service.homePage = "index.html";
service.baseUrl = "/MIN/Web/test";
std::cout << getMINHttpMethodEnumFromStr("GET") << std::endl;
std::cout << getMINHttpStatusEnumFromStr("Continue") << std::endl;
service.GET("/getUserInfo", [](std::shared_ptr<MINWebRequest> &request,
std::shared_ptr<MINWebResponse> &response) {
nlohmann::json result = {
{"username", "qjm253"},
{"description", "What?"}
};
response->contentType = APPLICATION_JSON;
response->body = result.dump();
return 0;
});
MINHttpServerImpl minHttpServer;
Server::ServerConfig serverConfig;
serverConfig.service = &service;
serverConfig.minHttpServer = &minHttpServer;
Server server(serverConfig);
server.run();
}