2016-10-31 1 views
1

curlを使用してPHPでexpedia xml webserviceを呼び出そうとしています。しかし、ポストにXMLデータを送信する方法どのようにexpedia xml webserviceをPHPで呼び出す

サンプル要求

<BookingConfirmRQ xmlns="http://www.expediaconnect.com/EQC/BC/2007/09"> 
    <Authentication username="mytestusername" password="mypwd"/> 
    <Hotel id="7224658"/>  
    <BookingConfirmNumbers> 
     <BookingConfirmNumber bookingID="252743459" bookingType="Book" confirmNumber="E2340589B" confirmTime="2013-12-30T23:45:00Z"/> 
    </BookingConfirmNumbers> 
</BookingConfirmRQ> 

応答

<BookingConfirmRS xmlns="http://www.expediaconnect.com/EQC/BC/2007/08"> 
    <Success/> OR FAIL 
</BookingConfirmRS> 

$curl = curl_init(); 
    $url ="https://services.expediapartnercentral.com/eqc/bc"; 
    $data = array();//What will be data here and which formate 

    switch ($method) 
    { 
     case "POST": 
      curl_setopt($curl, CURLOPT_POST, 1); 

      if ($data) 
       curl_setopt($curl, CURLOPT_POSTFIELDS, $data); 
      break; 
     case "PUT": 
      curl_setopt($curl, CURLOPT_PUT, 1); 
      break; 
     default: 
      if ($data) 
       $url = sprintf("%s?%s", $url, http_build_query($data)); 
    } 

    // Optional Authentication: 
    curl_setopt($curl, CURLOPT_HTTPAUTH, CURLAUTH_BASIC); 
    curl_setopt($curl, CURLOPT_USERPWD, "MYusername:MYpassword"); 

    curl_setopt($curl, CURLOPT_URL, $url); 
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); 

    $result = curl_exec($curl); 

は、私がここにPOSTデータがどうなるかについて混乱しています私のコードの一部どのフォーマット? CURLを使用するのが正しいアプローチですか、ここでSoapClient()を使用する必要がありますか? あなたのアイデアと解決策をお伝えください。お返事

+1

は確かにAPIの開発者向けドキュメントは、あなたが送信するために必要とされるどのような詳細はそれをしませんでしょうか? – RamRaider

+1

XML本体を作成して送信する必要があります。 – Evert

答えて

0

ご質問のみです。 $ dataとは何でしょうか?

この通常のHTMLフォームを知っている必要があります。このケースでは、私たちはあなたのカールのスクリプトであることをやっにカールを使用することができますログインフォーム

<form method=POST> 
<input type=text name=user value=admin> 
<input type=password name=pass value=SECRET> 
<input type=submit name=login value=sigin> 
</form> 

を使用しています。 と$データは次のようになります。

$method='POST'; 
$data = array(
    'user'=> 'admin', 
    'pass'=>'SECRET', 
    'login'=>'sigin' 
); 
関連する問題