Использование libhttpserver для сборки https-сервера - PullRequest
1 голос
/ 24 мая 2019

Я пытаюсь скомпилировать приведенный ниже фрагмент кода для запуска основного 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

...