Ah thanks. I have seen this with the multiple chunks - at this stage I am only expecting tens of bytes, but it's a good idea to be careful. thanks
From: [email protected] To: [email protected] Date: Fri, 13 Apr 2012 08:48:00 -0700 Subject: Re: using curl during an http transaction 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 <[email protected]> Reply-To: "[email protected]" <[email protected]> Date: Fri, 13 Apr 2012 08:31:33 -0700 To: "[email protected]" <[email protected]> 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: [email protected] > To: [email protected] > 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" <[email protected]> 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:[email protected]] > >Sent: Thursday, April 05, 2012 7:27 AM > >To: [email protected] > >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 [email protected] > > > >Walt > >Disney Connected and Advanced Technologies > > > >925 4th Ave - Suite 1600 - Seattle - 98104 > > > > > > > >From: Leif Hedstrom > >[mailto:[email protected]] > > > >Sent: Wednesday, April 20, 2011 2:33 PM > > > >To: [email protected] > > > >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 >
