Я пытаюсь установить простой запрос get к REST API (https API), используя mongoose (https://github.com/cesanta/mongoose), но запрос по какой-то причине не обрабатывается (я не получаю триггер обработчика события для запроса).
я сохранил возвращаемое значение mg_connect_http (& mgr, ev_handler, url, NULL, NULL) и распечатал его как NULL, так что соединение не получается, я думаю?
static const char* url = "https://akabab.github.io/superhero-api/api";
static int s_exit_flag = 0;
static void ev_handler(struct mg_connection* c, int ev, void* p) {
cout << "failure code = " << ev << endl;
struct http_message* ev_data = (struct http_message*)p;
switch (ev) {
case MG_EV_CONNECT:
if (*(int*)p != 0) {
fprintf(stderr, "connect() failed: %s\n", strerror(*(int*)p));
s_exit_flag = 1;
}
break;
case MG_EV_ACCEPT:
cout << " it is accpeted !!!!" << endl; break;
case MG_EV_HTTP_REPLY:
c->flags |= MG_F_SEND_AND_CLOSE;
//if (s_show_headers) {
fwrite(ev_data->message.p, 1, ev_data->message.len, stdout);
//}
putchar('\n');
s_exit_flag = 1;
break;
case MG_EV_HTTP_CHUNK:
fwrite(ev_data->body.p, 1, ev_data->body.len, stdout);
s_exit_flag = 1;
break;
case MG_EV_CLOSE:
if (s_exit_flag == 0) {
printf("Server closed connection\n");
s_exit_flag = 1;
}
break;
default:
break;
}
cout << "request handled quitting" << endl;
}
int main(void) {
struct mg_mgr mgr;
struct mg_connection* nc;
mg_mgr_init(&mgr, NULL);
mg_connect_http(&mgr, ev_handler, url, NULL, NULL);
int count = 0;
while (s_exit_flag == 0) {
std::cout << "count = " << count << std::endl;
mg_mgr_poll(&mgr, 1000);
count++;
}
mg_mgr_free(&mgr);
return 0;
}
'' '
как сделать успешный запрос https?
я делаю что-то не так, что нужно исправить ??