Re: Sending XML requests as raw post data
| From: | Nathan Rixham | Date: | Sun, 08 Feb 2009 02:16:35 +0000 |
| Subject: | Re: Sending XML requests as raw post data | ||
| References: | 1 | Groups: | php.general |
| Request: | Send a blank email to php-general+get-287916@lists.php.net to get a copy of this message | ||
Marc Steinert wrote:
Hi there! The software I'm maintaining uses $HTTP_RAW_POST_DATA to receive XML requests, posted by some client written in C#. Now I need to write a PHP client that posts XML requests the same way as the C# client, so that the posted data is stored in $HTTP_RAW_POST_DATA, too. I tried to use curl to match my needs, but failed to establish a connection with the following code: $header[] = "Host: ".$host; $header[] = "MIME-Version: 1.0"; $header[] = "Accept: text/xml"; $header[] = "Content-length: ".strlen($xmlRequest); $header[] = "Cache-Control: no-cache"; $header[] = "Connection: close \r\n"; $header[] = $xmlRequest; // Contains the XML request curl_setopt($curl, CURLOPT_URL,self::BASE_URL); curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); curl_setopt($curl, CURLOPT_TIMEOUT, 4); curl_setopt($curl, CURLOPT_CUSTOMREQUEST,'POST'); curl_setopt($curl, CURLOPT_HTTPHEADER, $header); // Dispatch request and read answer $response = curl_exec($curl); // returns false Thanks for your help. Greetings from Germany Marcand nearly forgot, you can loose all of those headers, half the ones you specified are for responses not requests anyways :p $curl = curl_init(); curl_setopt($curl, CURLOPT_URL, self::BASE_URL); curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); curl_setopt($curl, CURLOPT_POST, 1); curl_setopt($curl, CURLOPT_POSTFIELDS, $xmlRequest); curl_setopt($curl, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1); curl_setopt($curl, CURLINFO_HEADER_OUT, 1); $response = curl_exec($curl);