I want to obtain response of sub request in nginx module development
I am developing C modules in nginx
I want to issue a sub request and get a response(header,body)
The code I am writing now is as as follows
How can I get a response (heade, body) after executing the ngx_http_subrequest method?
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;
}
c nginx module
add a comment |
I am developing C modules in nginx
I want to issue a sub request and get a response(header,body)
The code I am writing now is as as follows
How can I get a response (heade, body) after executing the ngx_http_subrequest method?
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;
}
c nginx module
add a comment |
I am developing C modules in nginx
I want to issue a sub request and get a response(header,body)
The code I am writing now is as as follows
How can I get a response (heade, body) after executing the ngx_http_subrequest method?
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;
}
c nginx module
I am developing C modules in nginx
I want to issue a sub request and get a response(header,body)
The code I am writing now is as as follows
How can I get a response (heade, body) after executing the ngx_http_subrequest method?
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;
}
c nginx module
c nginx module
asked Nov 20 at 5:55
白石善之
1
1
add a comment |
add a comment |
1 Answer
1
active
oldest
votes
ngx_http_auth_request_done is the handler you have defined which is the callback that handles the response of the subrequest. You are supposed to implement this function. If you look at it's signature, it has the request structure you have sent out. The request structure's upstream variable contains a buffer where the response is stored. r->upstream->buffer. You can look at nginx's own modules for how to parse the response.
add a comment |
Your Answer
StackExchange.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "1"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53387035%2fi-want-to-obtain-response-of-sub-request-in-nginx-module-development%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
ngx_http_auth_request_done is the handler you have defined which is the callback that handles the response of the subrequest. You are supposed to implement this function. If you look at it's signature, it has the request structure you have sent out. The request structure's upstream variable contains a buffer where the response is stored. r->upstream->buffer. You can look at nginx's own modules for how to parse the response.
add a comment |
ngx_http_auth_request_done is the handler you have defined which is the callback that handles the response of the subrequest. You are supposed to implement this function. If you look at it's signature, it has the request structure you have sent out. The request structure's upstream variable contains a buffer where the response is stored. r->upstream->buffer. You can look at nginx's own modules for how to parse the response.
add a comment |
ngx_http_auth_request_done is the handler you have defined which is the callback that handles the response of the subrequest. You are supposed to implement this function. If you look at it's signature, it has the request structure you have sent out. The request structure's upstream variable contains a buffer where the response is stored. r->upstream->buffer. You can look at nginx's own modules for how to parse the response.
ngx_http_auth_request_done is the handler you have defined which is the callback that handles the response of the subrequest. You are supposed to implement this function. If you look at it's signature, it has the request structure you have sent out. The request structure's upstream variable contains a buffer where the response is stored. r->upstream->buffer. You can look at nginx's own modules for how to parse the response.
answered Nov 24 at 6:42
user1295872
1441213
1441213
add a comment |
add a comment |
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Some of your past answers have not been well-received, and you're in danger of being blocked from answering.
Please pay close attention to the following guidance:
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53387035%2fi-want-to-obtain-response-of-sub-request-in-nginx-module-development%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown