搜尋
首頁php教程php手册php中soap应用

php中soap应用

Jun 06, 2016 pm 07:59 PM
phpssoap協定物件應用簡單訪問

SOAP :简单对象访问协议 (SOAP:Simple Object Access Protocol) 简单对象访问协议(SOAP)是一种轻量的、简单的、基于 XML 的协议,它被设计成在 WEB 上交换结构化的和固化的信息。 SOAP 可以和现存的许多因特网协议和格式结合使用,包括超文本传输协议

SOAP:简单对象访问协议

  (SOAP:Simple Object Access Protocol)

  简单对象访问协议(SOAP)是一种轻量的、简单的、基于 XML 的协议,它被设计成在 WEB 上交换结构化的和固化的信息。 SOAP 可以和现存的许多因特网协议和格式结合使用,包括超文本传输协议( HTTP),简单邮件传输协议(SMTP),多用途网际邮件扩充协议(MIME)。它还支持从消息系统到远程过程调用(RPC)等大量的应用程序。

 

下面已一个简单的例子介绍一下soap在php中的应用。

 

1、使用php提供soap接口给其他人

    

     要使用php提供soap接口,我们唯一需要做的就是使用SoapServer类声明一个接口。

     下面是示例代码:

 

     php文件:SoapInterfaceProvider.php

 

 

2、调用php中已经提供好的soap接口

     要测试步骤1中提供的接口,只需要执行下面的测试代码。(只需要执行下面的代码,不需要事先启动或执行

     SoapInterfaceProvider.php文件,调用下面的测试代码的时候,php会自动执行SoapInterfaceProvider.php文件。所以

     这里的location参数非常重要,不能出错,必须是实际放置SoapInterfaceProvider.php的位置)

     php文件:SoapClient.php

 

 

 在浏览器中输入下面连接进行测试:http://localhost/soap/SoapClient.php   (根据实际位置进行调整)

 执行结果:

 获取到数据:hello world

 

 3、代码优化

 

      上面提供的soap接口的文件SoapInterfaceProvider.php中,只有一个方法,如果有很多方法需要提供的话,每次都调用addFunction方法就显得有点麻烦了。并且将所有实际的方法都写在SoapInterfaceProvider.php文件中也不太合适。

      这里我们可以将所有实际要调用的方法提出来放到一个单独的php类中,并且使用setClass方法一次性声明所有的接口。

      下面是示例代码:

      php文件:SoapMethod.class.php

 

 

      php文件:SoapInterfaceProvider.php

 

 

      我在进行测试时,一开始没有使用setClass方法,而是使用了addFunction方法,实际调用的方法也时放到了SoapMethod类中,和

上面的SoapMethod.class.php代码一样。结果调用addFunction方法时,出现如下错误:

 

Fatal error: Uncaught SoapFault exception: [HTTP] Not Found in C:/AppServ/www/webcenter/soap/SoapClient.php:4 Stack trace: #0 [internal function]: SoapClient->__doRequest('__call('getSoapData', Array) #2 C:/AppServ/www/webcenter/soap/SoapClient.php(4): SoapClient->getSoapData() #3 {main} thrown in C:/AppServ/www/webcenter/soap/SoapClient.php on line 4

 

      后发现是用于方法定义在了类中,SoapInterfaceProvider.php文件中无法找到。将SoapMethod.class.php中的类定义去掉,只保留定

义的方法就可以了。

      如果创建SoapClient时传入的location参数有问题,也会出现上面的错误。

陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱工具

mPDF

mPDF

mPDF是一個PHP庫,可以從UTF-8編碼的HTML產生PDF檔案。原作者Ian Back編寫mPDF以從他的網站上「即時」輸出PDF文件,並處理不同的語言。與原始腳本如HTML2FPDF相比,它的速度較慢,並且在使用Unicode字體時產生的檔案較大,但支援CSS樣式等,並進行了大量增強。支援幾乎所有語言,包括RTL(阿拉伯語和希伯來語)和CJK(中日韓)。支援嵌套的區塊級元素(如P、DIV),

SublimeText3 英文版

SublimeText3 英文版

推薦:為Win版本,支援程式碼提示!

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

Dreamweaver Mac版

Dreamweaver Mac版

視覺化網頁開發工具

VSCode Windows 64位元 下載

VSCode Windows 64位元 下載

微軟推出的免費、功能強大的一款IDE編輯器