【问题标题】:how to call web services using soap in php如何在php中使用soap调用web服务
【发布时间】:2013-12-05 19:08:07
【问题描述】:
The following is a sample SOAP 1.1 request and response.:
POST /atservices/1.5/atws.asmx HTTP/1.1
Host: webservices2.autotask.net
Content-Type: text/xml; charset=utf-8
Content-Length: length
SOAPAction: "http://autotask.net/ATWS/v1_5/getZoneInfo"

<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
  xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
 xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
  <soap:Body>
  <getZoneInfo xmlns="http://autotask.net/ATWS/v1_5/">
  <UserName>string</UserName>
  </getZoneInfo>
 </soap:Body>
</soap:Envelope>

我们想在php中使用soap调用autotask的web服务。我们能得到它的例子吗 我们应该如何调用soap客户端。

Its output should be like this :

HTTP/1.1 200 正常 内容类型:文本/xml;字符集=utf-8 内容长度:长度

<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"    

xmlns:xsd="http://www.w3.org/2001/XMLSchema"    
xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
 <getZoneInfoResponse xmlns="http://autotask.net/ATWS/v1_5/">
  <getZoneInfoResult>
    <URL>string</URL>
    <ErrorCode>int</ErrorCode>
    <DataBaseType>string</DataBaseType>
    <CI>int</CI>
  </getZoneInfoResult>
 </getZoneInfoResponse>
 </soap:Body>
 </soap:Envelope>

【问题讨论】:

    标签: php soap


    【解决方案1】:

    将 PHP 原生 SoapClient 与服务 WSDL 一起使用,如下所示:

    $atservices_wsdl = "https://www.autotask.net/atservices/1.5/atws.wsdl";
    $atservices_client = new SoapClient($atservices_wsdl);
    
    $zone_info = $atservices_client->getZoneInfo("SomeUserName");
    
    print_r($zone_info); // review the returned object converted from SOAP response.
    
    echo $zone_info->DataBaseType; // this might work if it's not behind a Response object.
    

    【讨论】:

      【解决方案2】:

      至少,你应该以这样的目标为目标。更多可以找到here.

      $soap = new SoapClient('link/to/.wsdl');
      $result = $soap->__soapCall('getZoneInfo', array('UserName' => $username));
      var_dump($result);
      

      【讨论】:

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