Re: how to extract the "body" of a HTTP_Request2 request?

From: Date: Thu, 04 Mar 2010 09:26:55 +0000
Subject: Re: how to extract the "body" of a HTTP_Request2 request?
References: 1 2  Groups: php.pear.general 
Request: Send a blank email to pear-general+get-30356@lists.php.net to get a copy of this message
On Thu, 4 Mar 2010, Alexey Borzov wrote: > Hi Robert, > > On 04.03.2010 2:13, Robert P. J. Day wrote: > > just getting started with the HTTP_Request2 class, and i want > > to create a POST request that passes potentially lots of data as > > uploaded content. from the class definition in Request2.php, i > > can see: > > > > /** > > * Sets the request body > > * > > * @param string Either a string with the body or filename> > containing > > body > > * @param bool Whether first parameter is a filename > > * @return HTTP_Request2 > > * @throws HTTP_Request2_Exception > > */ > > public function setBody($body, $isFilename = false) > > ... snip ... > > > > > > fair enough but, once i send off the POST request to the remote > > PHP file, how do i access that "body" content? i'm sure this is > > just a trivial POST issue. i can examine > > $_SERVER['CONTENT_LENGTH'] to see the *length* of the body, but i > > don't know what variable to use to get the content itself. help? > > Please clarify: are you going to send a custom POST body (as in > XML-RPC or SOAP) or emulate POST file upload? > > In the former case you access the body via php://input stream, in > the latter case you need addUpload() rather than setBody() and just > access the $_FILES array as usual. i want to send an arbitrary amount of *content* via a POST request to a PHP script, so i think it's the former that i want. until now, i've been able to do a standard file upload since the content was always in a file, but now the content can come from anywhere so i have to rewrite my program to accept raw bytes and just pass that on. could be up to several megabytes. from the Request2.php script, i can read about addUpload(): /** * Adds a file to form-based file upload * * Used to emulate file upload via a HTML form. The method also sets * Content-Type of HTTP request to 'multipart/form-data'. * * If you just want to send the contents of a file as the body of HTTP * request you should use setBody() method... and since i have no actual *file* but just the contents, i went with setBody() but (not being a HTTP POST expert), i wasn't sure how to extract the contents at the other end. now i see it's using php://input stream. thanks, i'll give that a try shortly. rday -- ======================================================================== Robert P. J. Day Waterloo, Ontario, CANADA Linux Consulting, Training and Kernel Pedantry. Web page: http://crashcourse.ca Twitter: http://twitter.com/rpjday ========================================================================

« previous php.pear.general (#30356) next »