Я пытаюсь скомпилировать приведенный ниже фрагмент кода для запуска основного https-сервера, и я столкнулся с ошибкой, которую не могу устранить. Класс hello_world_resource отвечает за запуск сервера, а оператор return дает ответ, который сервер должен дать при обращении к нему.
URL-адрес сервера определяется функцией 'register_resource'
URL для документации библиотеки на github - https://github.com/etr/libhttpserver
Я несколько раз пытался загрузить ssl и curl и тоже искал в Google, но я все еще не могу найти причину этой проблемы.
abcd.key и xyz.crt - это самозаверяющие сертификаты, которые я сгенерировал после этой процедуры в Интернете -
https://www.digitalocean.com/community/tutorials/how-to-create-a-self-signed-ssl-certificate-for-apache-in-ubuntu-16-04
#include <httpserver.hpp>
using namespace httpserver;
class hello_world_resource : public http_resource
{
public:
const std::shared_ptr<http_response> render(const http_request&)
{
return std::shared_ptr<http_response>(new
string_response("Hello, World!"));
}
};
int main()
{
webserver ws = create_webserver(8080)
.use_ssl()
.https_mem_key("/path/to/abcd.key")
.https_mem_cert("/path/to/xyz.crt");
hello_world_resource hwr;
ws.register_resource("/hello", &hwr);
ws.start(true);
return 0;
}
Выдается ошибка:
прекращение вызова после выброса экземпляра 'std :: invalid_argument'
что (): BD
(G BBJ
Отменено
код должен работать и сервер должен быть доступен по адресу - https://localhost:8080/hello