соединяясь с остальным API, клиент идет на бесконечный цикл - PullRequest
0 голосов
/ 19 сентября 2019

Я пытаюсь установить простой запрос 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?

я делаю что-то не так, что нужно исправить ??

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...