You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@httpd.apache.org by André Warnier <aw...@ice-sa.com> on 2008/12/22 10:02:45 UTC
[users@httpd] Re: sub-requests, lookup_uri and that kind of stuff
Torsten Foertsch wrote:
> On Mon 22 Dec 2008, André Warnier wrote:
>> I could do this the hard way by using LWP to just issue a new HTTP
>> request to localhost and get the content, before I go on with my
>> current request.
>>
>> But I figure there must be an easier and more efficient way, no ?
>>
>> Looking at the explanations for sub-requests, lookup_uri etc.., I get
>> the impression however that calling these, pretty much terminates the
>> current request, and replaces it by the one I'm calling.
>> Which is not what I want.
>> I want to continue processing the current request but using the
>> response from my other request.
>
> Look at what mod_include does to get an impression about subrequests.
> You can use subrequests in 3 ways:
>
> 1) lookup_uri or similar creates the subreq and runs it up to fixup.
> Then you can use any information the subreq has gathered so far, that
> means authentication, finfo etc.
>
> 2) run it to include the output of the subreq into the current document
> more or less unmodified. To do that you create the subreq, install the
> necessary output filters and run() it.
>
> 3) run it to process the output in some other way. That can be done for
> example this way:
>
> my $content='';
> my $subr=$r->lookup_uri( $uri );
> $subr->add_output_filter( sub {
> my ($f, $bb) = @_;
> while (my $e = $bb->first) {
> $e->read(my $buf);
> $content.=$buf;
> $e->delete;
> }
> return Apache2::Const::OK;
> });
> $subr->run;
> my $rc=$subr->status;
> my $ct=$subr->content_type;
>
> Now, $content holds the response body, $rc the HTTP status code and $ct
> the subreq's content type.
>
> In all cases a subreq returns control to the calling request. An
> internal_redirect on the other hand almost completely takes over the
> request without return to the calling req.
>
> Torsten
>
Thanks much.
That's exactly what I was looking for.
---------------------------------------------------------------------
The official User-To-User support forum of the Apache HTTP Server Project.
See <URL:http://httpd.apache.org/userslist.html> for more info.
To unsubscribe, e-mail: users-unsubscribe@httpd.apache.org
" from the digest: users-digest-unsubscribe@httpd.apache.org
For additional commands, e-mail: users-help@httpd.apache.org