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 Thu, 12 Apr 2012 18:04:46 GMT
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> 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
>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
>
>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
>
>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