如何访问PHP中的Windows Web服务

问题描述:

我想通过Web服务访问我的一些客户端数据。他向我提供了以下信息以XML格式获取这些数据。如何访问PHP中的Windows Web服务

http://www.clients-domain.com/erpsync/erp_sync.asmx

用户= ABCD

密码= 1234

详细功能:

GetAllItemData - 将返回其价格

GetItemDataByDate选择网页的所有物品, - 将返回在特定日期

0之间更新的所有项目

GetAllItemStock - 将返回所有项目的网站更新库存

GetStockByItem - 将返回单个项目的股票。

此Web服务位于基于Windows的服务器上。

我不知道如何在PHP中调用以上URL来获取此数据。 他告诉我这个Web服务的返回值是XML格式。

而且它是SOAP 1.1

任何帮助appriciated

+0

'的file_get_contents()'将是一个简单的开始。 'cURL'也是另一种解决方案。或者,也许它是您需要使用的“SOAP”。 – Ohgodwhy 2014-11-21 19:05:25

+0

使用[cURL](http://php.net/manual/en/book.curl.php) – 2014-11-21 19:05:32

因为他说SOAP简单延长soap client

1日建立到SOAP

$soapCon = new Utils_SoapClient("http://www.clients-domain.com/erpsync/erp_sync.asmx", array()); 
$soapCon->setCredentialsHeader(User, Password); 

连接创建一个结构来通过变量

$struct = new stdClass(); 
$struct->item1 = $item1;    

通话功能客户端为您提供了传递的参数/变量

GetAllItemData - 将返回其价格

$result = $soapCon->GetAllItemData(new SoapVar($struct, SOAP_ENC_OBJECT)); 

GetItemDataByDate选择网络中的所有项目, - 将返回一间更新的所有物品具体日期

$result = $soapCon->GetItemDataByDate(new SoapVar($struct, SOAP_ENC_OBJECT)); 

GetAllItemStock - 将返回更新的所有库存物品的网站

$result = $soapCon->GetAllItemStock(new SoapVar($struct, SOAP_ENC_OBJECT)); 

GetStockByItem - 将返回单个物品的库存。

$result = $soapCon->GetStockByItem(new SoapVar($struct, SOAP_ENC_OBJECT)); 

SOAP客户端类

class Utils_SoapClient extends SoapClient { 

    protected $_targetNamespace; 

    public function __construct($wsdl, $options){ 
      parent::__construct($wsdl, $options); 

      // detect target namespace 
      $xml = simplexml_load_file($wsdl); 
      $this->_targetNamespace = (string) $xml['targetNamespace']; 
    } 

    public function setCredentialsHeader($login, $password) { 
      $header = new SoapHeader($this->_targetNamespace, 
        'CredentialsSoapHeader', 
        new SoapVar(
          array(
            'Login' => $login, 
            'Password' => $password, 
          ), 
          SOAP_ENC_OBJECT, 
          'CredentialsSoapHeader', 
          $this->_targetNamespace 
        ) 
      ); 

      $this->__setSoapHeaders(array($header)); 
    } 
} 
+0

那么,我将使用此用户名和密码? – 2014-11-21 19:10:12

+0

看看文档@SadaqatGhafoor – 2014-11-21 19:12:33

+0

谢谢大卫。我如何使用这些功能?像GetAllItemData? – 2014-11-21 19:32:50