如何创建一个soap客户端

时间:2014-04-18 13:31:28

标签: php web-services soap

我真的很喜欢编写php和soap。我想请求这项服务:http://www.artimesaj.com/services/artimesaj.asmx?op=TekMesajCokNumara但我不知道该怎么办。我对这个网站一无所知。

最后是什么?我应该怎么做:

  POST /services/artimesaj.asmx HTTP/1.1
  Host: www.artimesaj.com
  Content-Type: text/xml; charset=utf-8
  Content-Length: length
  SOAPAction: "http://tempuri.org/TekMesajCokNumara"

1 个答案:

答案 0 :(得分:1)

首先,您construct a SOAPClient object传递the machine-readable service description (WSDL)的网址:

$client = new SOAPClient('http://www.artimesaj.com/services/artimesaj.asmx?WSDL');

然后你需要为<securty>部分添加“SOAP标题”:

$header = new SoapHeader(
     'http://tempuri.org/', 
     'securty',
     array(
         'KullaniciAdi' => '???',
         'Parola' => '???',
         'Orijin' => '???'
     )
);
$client->__setSoapHeaders($header);

然后,您可以拨打the defined "operations" (functions) in the service之一,例如TekMesajCokNumara

$response = $client->TekMesajCokNumara(array(
     'message' => '???',
     'numbers' => array(
        'TelefonNo' => array(
           'TelNo' => '???'
        ),
        'TelefonNo' => array(
           'TelNo' => '???'
        )
      ),
      'date' => '???'
));

然后,SOAP库将所有参数转换为适当的XML,将其发送到服务(使用类似问题的请求)并给出响应;如果一切顺利,你不需要知道这意味着什么,它就会起作用。

显然,您需要找到一些关于这些参数究竟应该是什么的文档。

根据我的经验,让SOAP进行正确的交互可能有点繁琐,我绝对不能保证上面的代码能够正常工作,或者承诺帮助你调试它,但希望它能给出一个例子。您应该期待编写的代码。