0

phpでcurl関数を使ってsoapメソッドを呼び出してみたいのですが、警告が1つ表示されます

警告: curl_setopt() [function.curl-setopt]: 無効な curl 構成オプション /home/bestbus/public_html/apitest.php の 26 行目

<? 

$xml_data ='<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:rsr="http://webservices.foxfireindia.com/RSRSAPI">
   <soap:Header>
  <rsr:LinkCredentials>
     <!--Optional:-->
     <rsr:Login>***main</rsr:Login>
     <!--Optional:-->
     <rsr:Password>****@3api</rsr:Password>
  </rsr:LinkCredentials>
 </soap:Header>
  <soap:Body>
  <rsr:Login>
       <!--Optional:-->
       <rsr:userName>***main</rsr:userName>
     <!--Optional:-->
     <rsr:password>****@3api</rsr:password>
  </rsr:Login>
  </soap:Body>
 </soap:Envelope>';

$URL = "http://115.254.89.1:8090/RSRS_APITest/RSRSAPI.asmx?wsdl";

$ch = curl_init($URL);
curl_setopt($ch, CURLOPT_MUTE, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: text/xml'));
curl_setopt($ch, CURLOPT_POSTFIELDS, "$xml_data");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$output = curl_exec($ch);

print_r($output);
curl_close($ch);

?>
4

3 に答える 3

1

マニュアルによると、CURLOPT_SSL_VERIFYHOST の有効な値は 1 または 2 のみであり、1 の使用は cURL 7.28.1 で削除されました。

  • 1 は、SSL ピア証明書内の共通名の存在を確認します。
  • 2 共通名の存在を確認し、それが提供されたホスト名と一致することも確認します。本番環境では、このオプションの値は 2 (デフォルト値) のままにしておく必要があります。
于 2013-03-14T10:27:21.783 に答える
0

交換してみてください

 curl_setopt($ch, CURLOPT_MUTE, 1);

curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

ドキュメントの時点でhttp://php.net/manual/en/function.curl-setopt.phpCURLOPT_MUTEがcURL7.15.5で削除されているため

于 2013-03-14T10:37:42.133 に答える
0

これを試してください:

<?php
    $xml_data = '<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:rsr="http://webservices.foxfireindia.com/RSRSAPI">
   <soap:Header>
  <rsr:LinkCredentials>
     <!--Optional:-->
     <rsr:Login>***main</rsr:Login>
     <!--Optional:-->
     <rsr:Password>****@3api</rsr:Password>
  </rsr:LinkCredentials>
 </soap:Header>
  <soap:Body>
  <rsr:Login>
       <!--Optional:-->
       <rsr:userName>***main</rsr:userName>
     <!--Optional:-->
     <rsr:password>****@3api</rsr:password>
  </rsr:Login>
  </soap:Body>
 </soap:Envelope>';

    $URL = "http://115.254.89.1:8090/RSRS_APITest/RSRSAPI.asmx?wsdl";
    $header = array(
                    "Content-type: text/xml;charset=\"utf-8\"",
                    "Accept: text/xml",
                    "Cache-Control: no-cache",
                    "Pragma: no-cache",
                    "SOAPAction: \"run\"",
                    "Content-length: ".strlen($tresc),
                    );

    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL,            $URL);
    curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 10);
    curl_setopt($ch, CURLOPT_TIMEOUT,        10);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true );
    curl_setopt($ch, CURLOPT_POST,           true );
    curl_setopt($ch, CURLOPT_POSTFIELDS,     $xml_data);
    curl_setopt($ch, CURLOPT_HTTPHEADER,     $header);

    $output = curl_exec($ch);
    print_r($output);
    curl_close($ch);
?>
于 2013-03-14T10:32:42.337 に答える