Я хочу получить ответ на подзапрос при разработке модуля nginx - PullRequest
0 голосов
/ 20 ноября 2018

Я занимаюсь разработкой модулей C в nginx

Я хочу отправить подзапрос и получить ответ (заголовок, тело)

Код, который я сейчас пишу, выглядит следующим образом

Как получить ответ (заголовок, тело) после выполнения метода ngx_http_subrequest?

    ps = ngx_palloc(r->pool, sizeof(ngx_http_post_subrequest_t));
if (ps == NULL) {
    return NGX_ERROR;
}
ps->handler = ngx_http_auth_request_done;
ps->data = "foo";


if (ngx_http_subrequest(r, &uri, NULL, &sr, ps, NGX_HTTP_SUBREQUEST_IN_MEMORY) != NGX_OK)
{
    ngx_log_error(NGX_LOG_DEBUG, r->connection->log, 0, "subrequest is failed!!");
    return NGX_ERROR;
}

1 Ответ

0 голосов
/ 24 ноября 2018

ngx_http_auth_request_done - это определенный вами обработчик, который является обратным вызовом, который обрабатывает ответ подзапроса.Вы должны реализовать эту функцию.Если вы посмотрите на его подпись, она имеет структуру запроса, которую вы отправили.Восходящая переменная структуры запроса содержит буфер, в котором хранится ответ.r-> расположенного в верхнем> буфер.Вы можете посмотреть на собственные модули nginx, как разобрать ответ.

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