php - 如何在 php 中使用 soap 发送 xml 请求?

标签 php xml soap

我正在开发新项目,对于这个项目我必须使用 SOAP。我是这个 SOAP 的新手。 我红色了我的项目文档。在该文档中,它有 WSDL 和 XML 请求。通过使用 boath WSDL 和 XML 请求,我如何发送 XML 请求。下面我正在编写 WSDL 和 XML 请求。请帮助我。

谢谢。


WSDL:

http://acceptance.travelstreet.com/hotelsv3/components/hotels_ws.cfc?wsdl

XML 请求:

<?xml version="1.0" encoding="utf-8"?>
<OTA_HotelAvailRQ Version="1.0">
   <POS>
    <Source>
     <UniqueId Id="username:password" />
    </Source>
   </POS>
   <AvailRequestSegments>
    <AvailRequestSegment>
     <StayDateRange End="2011-08-15" Start="2011-08-14" />
     <RoomStayCandidates>
      <RoomStayCandidate Quantity="1">
       <GuestCounts>
        <GuestCount AgeQualifyingCode="10" Count="1" />
       </GuestCounts>
      </RoomStayCandidate>
     </RoomStayCandidates>
     <HotelSearchCriteria>
      <Criterion>
       <HotelRef Destination="East London, South Africa" CityCode="" CountryCode="" HotelName="" MinHotelRating="1"/>
       <SearchCurrency>EUR</SearchCurrency>
       <AdditionalInfo Value="1" />
       <Language>EN</Language>
      </Criterion>
     </HotelSearchCriteria>
    </AvailRequestSegment>
   </AvailRequestSegments>
  </OTA_HotelAvailRQ>

最佳答案

我建议您阅读有关 PHP's SoapClient 的内容. PHP 手册中有很多很好的示例。

首先,创建对象:

$client = new SoapClient('http://www.example.com/end_point.wsdl');

然后调用方法:

$result = $client->SomeFunction($data);

其中 SomeFunction 是您要在服务上调用的方法名称,$data 是一个 PHP 数组,表示您要发送的 XML 数据结构。

希望对您有所帮助。

[编辑] 只是为了根据 OP 的进一步问题进行澄清:

使用 PHP SOAPClient 时,您不需要创建实际的 XML 代码。您需要将数据放入 PHP 数组中,SOAPClient 会为您将其转换为 XML。数组键应以 XML 元素名称命名,数组值是元素值。对嵌套的 XML 元素使用嵌套数组。

关于php - 如何在 php 中使用 soap 发送 xml 请求?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6535353/

相关文章:

java - 在 Java 中创建带有子节点的 SOAP 消息

java - 无法解码 SOAP 响应

php - 多个函数是 PHP 中的一个大函数?

Android XML 值 - String Array::Placing a quote in the value?

xml - 重新初始化 xslt 变量

java - 带有命名空间的 XSLT 属性

soap - 如何在不检查 Content-Type header 的情况下使 jaxws 解析响应

PHP 网络服务困境

php - Codeigniter应用程序设计

PHP 和 MYSQL 按小数列排序