Web Service 范例

Web Service 的创建与编程语言的种类无关,任何应用程序都可拥有 Web Service 组件

SOAP 有两种操作方式: NO-WSDLWSDL

  • NO-WSDL模式: 使用参数来传递要使用的信息

  • WSDL模式: 使用WSDL文件名作为参数,并从WSDL中提取服务所需的信息

因为我的主要编程语言是 PHP,所以我将用 PHP 的 SOAP 扩展创建一些 Web Service 范例

范例 PHP SOAP Web Service

开始开发范例前,我们先要确保 PHP 是否安装了 SOAP 扩展

1. 命令行检测法

在命令行里输入

php -i | grep soap

输出

Soap Client => enabled
Soap Server => enabled

说明 SOAP 扩展已经装好了

2. phpinfo() 函数检测法

创建一个 i.php的文件输入

<?php 
phpinfo();

访问 http://localhost/i.php 出现以下信息表明已经安装了 SOAP 扩展:

PHP SOAP 范例目录结果如下:

使用 Linux tree 命令 查看目录结果如下:

soap
├── client.php
└── server.php

0 directories, 2 files

PHP SOAP 范例: 服务器端 server.php

<?php 
<?php 
// Web 类用于处理请求
Class Web
{
    /**
     *    返回网站名称
     *    @return string 
     */
    public function getName(){
        return "简单编程";
    }

    /**
     *    返回网站首页地址
     *    @return string 
     */
    public function getUrl(){
        return "https://www.twle.cn/";
    }
}

// 创建 SoapServer 对象
$s = new SoapServer(null,
    array(
      'uri'      =>'twle_web',
    )
);

// 导出 Web 类中的全部函数
$s->setClass("Web");
// 处理一个SOAP请求,调用必要的功能,并发送回一个响应。
$s->handle();

PHP SOAP 范例: 客户端 client.php

<?php
try{
  // non-wsdl方式调用web service
  // 创建 SoapClient 对象
  // 
  ini_set('soap.wsdl_cache_enabled', "0");

  $soap = new SoapClient(null,array(
      "location" => "http://127.0.0.1:3000/server.php",
      "uri"      => "twle_web",  //资源描述符服务器和客户端必须对应
      "style"    => SOAP_RPC,
      "use"      => SOAP_ENCODED
      )
);
  // 调用函数 
  $result1 = $soap->getName();
  $result2 = $soap->__soapCall("getUrl",array());
  echo $result1."<br/>";
  echo $result2;
} catch(SoapFault $e){
  echo $e->getMessage();
}catch(Exception $e){
  echo $e->getMessage();
}

首先 cd 到 soap 目录,然后在命令行中输入

PHP -S 0.0.0.0:3000 

接着浏览器中输入 http://127.0.0.1:3000/client.php 就会看到如下结果

简单编程
https://www.twle.cn/
关于   |   FAQ   |   我们的愿景   |   广告投放   |  博客

  简单教程,简单编程 - IT 入门首选站

Copyright © 2013-2022 简单教程 twle.cn All Rights Reserved.