trafficserver-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Walsh, Peter" <Peter.Wa...@disney.com>
Subject Re: using curl during an http transaction
Date Fri, 13 Apr 2012 15:48:00 GMT
I'm not sure for the redirect question because we don't use that feature.

However, one last thing I want to mention with regard to HttpConnect. Make sure to test this
with large responses because its possible to get multiple READ_READY/COMPLETE callbacks when
the response size is large. Many examples we've seen don't handle this correctly and we stumbled
on it at first.

From: Servalan eq <servalaneq@hotmail.com<mailto:servalaneq@hotmail.com>>
Reply-To: "users@trafficserver.apache.org<mailto:users@trafficserver.apache.org>" <users@trafficserver.apache.org<mailto:users@trafficserver.apache.org>>
Date: Fri, 13 Apr 2012 08:31:33 -0700
To: "users@trafficserver.apache.org<mailto:users@trafficserver.apache.org>" <users@trafficserver.apache.org<mailto:users@trafficserver.apache.org>>
Subject: RE: using curl during an http transaction


Thanks very much Peter.
I have got this working pretty much as you describe - I just need to go back to doing the
remap type operations from a remap plugin now.

I presume I can do forwarding or redirection pretty much as normal using TSUrlHostSet, TSUrlPathSet
etc.
The one thing I can't see how do to is the equivalent of

rri->redirect = 1
on the TSRemapRequestInfo, as I can't see how to get access to this from a standard plugin
event.

thanks very much for your help.

Servalan

> From: Peter.Walsh@disney.com<mailto:Peter.Walsh@disney.com>
> To: users@trafficserver.apache.org<mailto:users@trafficserver.apache.org>
> Date: Thu, 12 Apr 2012 11:04:46 -0700
> Subject: Re: using curl during an http transaction
>
> Hello,
> You may have already gotten this working, but here's some basic steps...
>
> 1.) Call TSHttpConnect with a sockaddr object, which returns a TSVConn
> 2.) Call TSVConnWrite using the returned TSVConn, a continuation, a buffer
> reader containing your request, and the content length. This returns a
> TSVIO
>
> example:
>
> RequestVio = TSVConnWrite(vconn, contp,
> mServerRequestBufferReader,
> TSIOBufferReaderAvail(mServerRequestBufferReader));
>
> NOTE: There are different ways to get the URI into
> mServerRequestBufferReader, we used the ATS API's to create a new HTTP
> header, set all the fields (ie scheme, host, path, etc) and used the
> TSHttpHdrPrint to get the buffer into mServerRequestBufferReader.
>
> 3.) Your handler will get called back with
> TS_EVENT_VCONN_WRITE_READY/COMPLETE. Once its complete, you can initiate a
> read using TSVConnRead on the TSVConn returned in step 1, and a response
> buffer, and the size of data you want.
>
> Example: TSVConnRead(vconn, contp, >mServerResponseBuffer, INT_MAX);
>
> This returns a new Response TSVIO
>
> 4.) Once you've initiated the read, your handler will get called back with
> TS_EVENT_VCONN_READ_READY/COMPLETE events, at which point you can read
> data from the response buffer. This is just like the reading done in the
> transform plugins, so if you look at those you'll find tons of examples
>
> Hope that helps
>
> -Pete
>
>
> On 4/5/12 9:57 AM, "Walsh, Peter" <Peter.Walsh@disney.com<mailto:Peter.Walsh@disney.com>>
wrote:
>
> >Hello,
> >I worked with Erik on this, and we did get it working eventually. It was
> >quite difficult to get this working as there aren't any good examples,
> >but we pieced together what we could based on the InkAPITest class and
> >the example protocol plugin that uses TSNetConnect, which is somewhat
> >similar.
> >
> >I'm a bit swamped right now, but when I have a minute I'll post a
> >response to this with some helpful tips, gotchas, etc.
> >
> >-Pete
> >
> >-----Original Message-----
> >From: Servalan eq [mailto:servalaneq@hotmail.com]
> >Sent: Thursday, April 05, 2012 7:27 AM
> >To: users@trafficserver.apache.org<mailto:users@trafficserver.apache.org>
> >Subject: RE: using curl during an http transaction
> >
> >
> >
> >
> >Hi Erik, did you ever get this TSHttpConnect call working?
> >I too am looking for some good examples to call a seperate HTTP service
> >while processing a request to determine how to handle it.
> >thanks very much,
> >Servalan
> >
> >> On 04/20/2011 02:16 PM, Earle, Erik wrote:
> >
> >> Is there an example usage of TSHttpConnect somewhere? I did not
> >see any in the examples.
> >
> >
> >
> >
> >
> >--
> >
> >Erik
> >Earle 206.664.4016 tie line:
> >8.664.4016 erik.earle@disney.com<mailto:erik.earle@disney.com>
> >
> >Walt
> >Disney Connected and Advanced Technologies
> >
> >925 4th Ave - Suite 1600 - Seattle - 98104
> >
> >
> >
> >From: Leif Hedstrom
> >[mailto:zwoop@apache.org]
> >
> >Sent: Wednesday, April 20, 2011 2:33 PM
> >
> >To: users@trafficserver.apache.org<mailto:users@trafficserver.apache.org>
> >
> >Cc: Earle, Erik
> >
> >Subject: Re: using curl during an http transaction
> >
> >
> >
> >On
> >04/20/2011 02:16 PM, Earle, Erik wrote:
> >
> >Hi
> >all. I'm new to the list and trafficserver.
> >
> >
> >
> >I'm
> >building a plugin to do OAuth 2. I'm looking to make a call to a separate
> >(REST) service to do the OAuth token validation.
> >
> >
> >
> >Does anyone
> >have experience with using something like curl or vconnections, etc. to
> >make a
> >separate http request during an http transaction?
> >
> >
> >
> >
> >
> >You want to use the appropriate APIs that we provide to perform HTTP
> >requests,
> >e.g. TSNetConnect() or TSHttpConnect().
> >
> >
> >
> >-- leif
>

Mime
View raw message