首页 » 我的php » 正文

php怎么调用自建证书的webservice

这个问题有人问过。国内网站这方面资料较少。 我这边来简单讲一下

首先先通过各种节操手段来使 apache 支持https 的方式。然后使用SoapDiscovery.class.php (百度一下,到处都是) 创建一个webservice 

于是我们就可以访问 https://xxx/abc.php?wsdl 。 注意这里是单向认证,并不验证客户端。

如果是php 的soapclient访问 不ssl加密的webservice ,那实在太简单。没啥好说的。

如果是ssl过后的呢?

代码应该怎么写

  $context = stream_context_create(array(
    ‘ssl’ => array(
        ‘verify_peer’ => false,
        ‘allow_self_signed’ => true     //这一步很重要,代表是否允许自建证书。因为到权威机构申请证书是要钱的
    )
));

$client  = new SoapClient(null, array( 
    ‘location’ => ‘https://xxxx/abc.php?wsdl’,    //这里写你的webservice地址 
    ‘uri’ => ‘urn:czService’,   //你的wsdl文件中会有 targetNamespace 自己找找
    ‘stream_context’ => $context
));

$client->XXX    这里尽情的执行你的方法吧

本文共 3 个回复

  • 匿名 2015/06/16 11:14

    👿 ❗ 🙂 😳 😮 😎 😆 😡 😈 :roll: 😉 💡 ➡ 😐 😥 :mrgreen: :mrgreen: :mrgreen: :mrgreen: :mrgreen: :mrgreen: :mrgreen:

  • heh 2015/08/15 23:46

    😎

  • 匿名 2016/03/23 18:22

    请教一下,按照你说的方法调用别人的java的https的webservice报 Uncaught SoapFault exception: [soap:Server] The given SOAPAction http://wsdl.com/#register does not match an operation,是什么原因

发表评论