[PHP-users 11680] Re: CURLを用いてHTTPS 通信

Mashiki php-users@php.gr.jp
Thu, 21 Nov 2002 23:09:48 +0900


 Mashikiです。

>curlを用いてhttps://〜のデータを取得したいと考えています。
>そこで、過去ログの6456などを参考にソースを書いてみました。
>しかし、実行したところ、結果が何も表示されません。
>エラーメッセージも表示されません。
>
>普通のhttp://〜のファイルだとちゃんとデータを取得することが出来ました。
>
>これはソースの問題でしょうか、それとも環境の問題でしょうか?
>それとも何か別の原因があるのでしょうか?
>何かアドバイスをいただければ幸いです。


私も以前同じような状況に陥りました。

 HTTP + GET
 HTTP + POST
 HTTPS + GET

ではうまくいくのに

 HTTPS + POST

ではどうにやっても結果を得られませんでした。

そのときの環境は

PHP Version 4.2.2
CURL support enabled 
CURL Information libcurl 7.9.8 (OpenSSL 0.9.6b) 

だったかと思います。


>ソースはこんな感じです。
>--------------------------------------------
>$ch = curl_init();
>curl_setopt ($ch, CURLOPT_URL, "https://www.secure.com/foo.php");
>curl_setopt ($ch, CURLOPT_POSTFIELDS, "var1=aaa&var2=bbb");
>curl_setopt ($ch, CURLOPT_POST, 1);
>curl_setopt ($ch, CURLOPT_SSLVERSION,3);
>curl_setopt ($ch, CURLOPT_HEADER, 0);
>curl_setopt ($ch, CURLOPT_TIMEOUT, 120);
>curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
>
>$result = curl_exec ($ch);
>print ("result=" . $results);
>curl_close ($ch);


私は時間が無かったのと、(最終的にコードが短くなると自分を騙しつつ)

   $results = `/usr/bin/curl -3 --connect-timeout 120 -d 
'var1=aaa&var2=bbb' 'https://www.secure.com/foo.php'`;
   print ("result=" . $results);

な感じで逃げました。せっかくphpをcurl付きでmakeしたのに、
屈辱的だったのですが。


# 山下さんのHPはどこを見ればいいのだろう