note 77502 modified in ref.curl by danbrown
| From: | danbrown@php.net | Date: | Sun, 17 May 2009 19:13:32 +0000 |
| Subject: | note 77502 modified in ref.curl by danbrown | ||
| References: | 1 | Groups: | php.notes |
| Request: | Send a blank email to php-notes+get-155215@lists.php.net to get a copy of this message | ||
FYI,
Anyone trying to connect to .NET with CURL to send a simple XML post, pay attention to the
following. This will save you hours! There is a previous note that I saw either on this page, or
somewhere else on this site that explains the correct way to specify the header option is to create
an array, then reference the array from the CURLOPT.
ie. Do something like this:
<?php
// Req. HTTP Header Values
$header[] = "Content-type: text/xml";
// Target URL
$sendTo = "http://www.example.com";
// Post Data
$post = "<?xml version=\"1.0\"
encoding=\"utf-8\"?>\n<root>\n....etc, etc,";
// Create CURL Connection
$ch = curl_init();
curl_setopt($ch, CURLOPT_USERAGENT, 'XtraDoh xAgent');
curl_setopt($ch, CURLOPT_URL, $sendTo);
curl_setopt($ch, CURLOPT_TIMEOUT, 900);
curl_setopt($ch, CURLOPT_CONNECTIONTIMEOUT, 30);
curl_setopt($ch, CURLOPT_FAILONERROR, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post);
?>
Notice the HTTPHEADER, $header above. I have not been able to get .NET to properly read the HTTP
header as specified (in this case as text/xml) when using the following:
<?php
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type'=>'text/xml'));
?>
Although this may work when working with other PHP, IIS, or even PHP, Apache, it does not (at least
in my experience) work with .NET, IIS.
--was--
FYI,
Anyone trying to connect to .NET with CURL to send a simple XML post, pay attention to the
following. This will save you hours! There is a previous note that I saw either on this page, or
somewhere else on this site that explains the correct way to specify the header option is to create
an array, then reference the array from the CURLOPT.
ie. Do something like this:
<?php
// Req. HTTP Header Values
$header[] = "Content-type: text/xml";
// Target URL
$sendTo = "http://www.example.com";
// Post Data
$post = "<?xml version=\"1.0\"
encoding=\"utf-8\"?>\n<root>\n....etc, etc,";
// Create CURL Connection
$ch = curl_init();
curl_setopt($ch, CURLOPT_USERAGENT, 'XtraDoh xAgent');
curl_setopt($ch, CURLOPT_URL, $sendTo);
curl_setopt($ch, CURLOPT_TIMEOUT, 900);
curl_setopt($ch, CURLOPT_CONNECTIONTIMEOUT, 30);
curl_setopt($ch, CURLOPT_FAILONERROR, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post);
?>
Notice the HTTPHEADER, $header above. I have not been able to get .NET to properly read the HTTP
header as specified (in this case as text/xml) when using the following:
<?php
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type'=>'text/xml'));
?>
Although this may work when working with other PHP, IIS, or even PHP, Apache, it does not (at least
in my experience) work with .NET, IIS.
http://php.net/manual/en/ref.curl.php