curl-and-php
Curl won't post
Date: Thu, 2 Apr 2009 21:04:43 +0200
Hello,
I have a problem with the curl and php on linux (Mandriva 2009).
I create a script to make a post request to a server with parameters.
On my Windows configuration the script works well, but on Linux, the request
is always send in GET.
Here is my code :
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, self::$url);
curl_setopt($ch, CURLOPT_TIMEOUT, 9000);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 30000);
curl_setopt($ch, CURLOPT_FAILONERROR, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_USERAGENT, "http://toto.com");
curl_setopt($ch, CURLOPT_REFERER, "Mozilla/4.0 (compatible; MSIE
5.01; Windows NT 5.0)");
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_VERBOSE, 1);
curl_setopt($curl, CURLOPT_HTTPHEADER, "Content-Type:
application/x-www-form-urlencoded");
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_HTTPGET, 0);
curl_setopt($ch, CURLOPT_POSTFIELDS, $params);
curl_setopt($ch, CURLOPT_ENCODING, "");
curl_setopt($ch, CURLOPT_USERPWD, self::$credentials);
curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);
curl_setopt($ch, CURLOPT_NOBODY, 0);
$http_code = curl_getinfo($ch);
$data = curl_exec($ch);
Here is the result on Windows :
About to connect() to www.mysite.net port 443 (#0)
Trying 2.2.2.2... * connected
Connected to www.mysite.net (2.2.2.2) port 443 (#0)
SSL connection using DHE-RSA-AES256-SHA
Server certificate:
subject: XXXXXXXXXXXXXXX
start date: 2007-11-20 00:00:00 GMT
expire date: 2010-12-21 23:59:59 GMT
issuer: XXXXXXXXXXXXX
SSL certificate verify result: self signed certificate in certificate
chain (19), continuing anyway.
Server auth using Basic with user 'user'
> POST -- MY URL -- HTTP/1.1
Authorization: Basic XXXXXXXXXXXXXXXXXXX
User-Agent: http://toto.com
Host: www.eloquant2.net
Accept: */*
Accept-Encoding: deflate, gzip
Referer: Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)
Content-Length: 228
Content-Type: application/x-www-form-urlencoded
< HTTP/1.1 200 OK
< Date: Thu, 02 Apr 2009 17:53:15 GMT
< Server: Apache Coyote/1.0
< Cache-Control: no-cache
< Content-Type: text/plain
< Content-Length: 6
< Set-Cookie: JSESSIONID=DBC56B06E5145F7D3EDF2E6214D16CC5; Path=/red
Connection #0 to host My URL left intact
Closing connection #0
And this is the Linux Result :
About to connect() to www.mysite.net port 443 (#0)
* Trying 2.2.2.2... * connected
* Connected to www.mysite.net (2.2.2.2) port 443 (#0)
* successfully set certificate verify locations:
* CAfile: /etc/pki/tls/certs/ca-bundle.crt
CApath: none
* SSL connection using DHE-RSA-AES256-SHA
* Server certificate:
* subject: XXXXXX
* start date: 2007-11-20 00:00:00 GMT
* expire date: 2010-12-21 23:59:59 GMT
* issuer: XXXXX
* SSL certificate verify ok.
* Server auth using Basic with user 'user'
> GET -URL-- HTTP/1.1
Authorization: Basic XXXXXXXXXXX
User-Agent: http://toto.com
Host: www.mysite.net
Accept: */*
Accept-Encoding: deflate, gzip
Referer: Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)
< HTTP/1.1 200 OK
HTTP/1.1 200 OK
< Date: Thu, 02 Apr 2009 16:10:32 GMT
Date: Thu, 02 Apr 2009 16:10:32 GMT
< Server: Apache Coyote/1.0
Server: Apache Coyote/1.0
< Cache-Control: no-cache
Cache-Control: no-cache
< Content-Type: text/html
Content-Type: text/html
< Content-Length: 1433
Content-Length: 1433
< Set-Cookie: JSESSIONID=7B0EE5F0175436B4DCF4F85A85933D46; Path=/red
Set-Cookie: JSESSIONID=7B0EE5F0175436B4DCF4F85A85933D46; Path=/red
I tried all but no way.
I also try to set curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'POST');
It make POST request but no parameters are sent.
Could you please help me.
Thank you.
Cordialement,
Etienne ANDREONI
etienne.sqad_at_gmail.com
_______________________________________________
http://cool.haxx.se/cgi-bin/mailman/listinfo/curl-and-php
Received on 2009-04-02