我尝试使用curl在php中调用expedia xml webservice。但是如何使用post
发送XML数据样品申请
<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()? 请分享您的想法和解决方案。感谢
答案 0 :(得分: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>
我们可以使用curl来完成你的curl脚本。 和$数据将是:
$method='POST';
$data = array(
'user'=> 'admin',
'pass'=>'SECRET',
'login'=>'sigin'
);