蓝色主旋律 2019-11-06 14:56:23 2673次浏览 0条回复 0 0 0

无意中接触了webservice的调用工作,但是调用过程中出现报错问题,搜索了很久解决了,在此记录一下。

什么是 webservice?

通俗的讲,按照一定xml格式,调用远程的服务器的方法,且服务器按照一定的格式返回xml内容,使用的是soap协议。

打开 php.ini 扩展
extension=php_soap.dll
调用案例
$soapClient = new soapClient('http://xxx/WebServices/MobileCodeWs.asmx?WSDL'); 
// 获取所有可以调用的方法
$soapClient->__getFunctions();
出现 Could not connect to host 报错问题

前提是:服务端的webservice是没问题的。

  • url 地址结尾一般都是 ?WSDL
  • location 必须填写
  • 适当的禁用soap缓存,如果有用的话。
public $ws_url = 'http://xxxx.com/WebService.asmx?WSDL'; // url地址一般都是这样的结尾
...
$client = new \SoapClient($this->ws_url, [
    'trace' => 1,
    // 必须存在
    'location' => $this->ws_url,
    'soap_version' => SOAP_1_2,
    'cache_wsdl' => WSDL_CACHE_NONE,
    'wsdl_cache_ttl' => WSDL_CACHE_NONE,
    "encoding" => "UTF-8"
]);
调用 方法/函数 格式
$res = $client->funcName([
    'param1' => 'xxx', // 参数 => 参数值
    'param2' => 'yyy'
]);
    没有找到数据。
您需要登录后才可以回复。登录 | 立即注册