【问题标题】:How call an expedia xml webservice in php如何在php中调用expedia xml webservice
【发布时间】:2017-03-13 11:49:58
【问题描述】:

我尝试使用 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 DATA 是什么以及哪种格式感到困惑? 使用 CURL 是正确的方法还是我必须在这里使用 SoapClient() ? 请分享您的想法和解决方案。谢谢

【问题讨论】:

  • API 开发人员文档肯定应该详细说明您需要发送的内容,不是吗?
  • 您需要创建 XML 正文并发送它。

标签: php xml web-services curl


【解决方案1】:

你的问题只是。 $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 脚本来执行此操作。 $data 将是:

$method='POST';
$data = array(
  'user'=> 'admin',
  'pass'=>'SECRET',
  'login'=>'sigin'
);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多