利用php soap實現web service

2021-07-11 16:40:33 字數 1717 閱讀 2347

今天學習到soap,偶遇到一介紹soap的博文,mark下。

php有兩個擴充套件可以實現web service,乙個是nusoap,乙個是php 官方的soap擴充套件,由於soap是官方的,所以我們這裡以soap來實現web service.由於預設是沒有開啟soap擴充套件的,所以自己先看一下soap擴充套件有沒有開啟。

在soap編寫web service的過程中主要用到了soapclient,soapserver,soapfault三個類。

soapclient類

這個類用來使用web services。soapclient類可以作為給定web services的客戶端。

它有兩種操作形式:

* wsdl 模式

* non-wsdl 模式

在wsdl模式中,構造器可以使用wsdl檔名作為引數,並從wsdl中提取服務所使用的資訊。

non-wsdl模式中使用引數來傳遞要使用的資訊。

soapserver類

這個類可以用來提供web services。與soapclient類似,soapserver也有兩種操作模式:wsdl模式和non-wsdl模式。這兩種模式的意義跟 soapclient的兩種模式一樣。在wsdl模式中,服務實現了wsdl提供的介面;在non-wsdl模式中,引數被用來管理服務的行為。

在soapserver類的眾多方法中,有三個方法比較重要。它們是soapserver::setclass(),soapserver::addfunction()和soapserver::handle()。

下面給出例項:

定義乙個提供服務的php類,這個類所提供的函式就是web service對外提供的服務

<?php

class personinfo

}?>

下面給出伺服器端的**:

<?php

//包含提供服務的類進來

require_once('personinfo.php');

//wsdl方式提供web service,如果生成了wsdl檔案則可直接傳遞到//soapserver的建構函式中

//$s = new soapserver('personinfo.wsdl');

//doesn't work 只有location不能提供web service

//下面兩種方式均可以工作,只要指定了相應的uri

下面是客戶端**:

<?php

trycatch(soapfault $e)catch(exception $e)

?>

利用PHP SOAP實現WEB SERVICE

php有兩個擴充套件可以實現web service,乙個是nusoap,乙個是php 官方的soap擴充套件,由於soap是官方的,所以我們這裡以soap來實現web service.由於預設是沒有開啟soap擴充套件的,所以自己先看一下soap擴充套件有沒有開啟。在soap編寫web servic...

利用PHP SOAP實現WEB SERVICE

php有兩個擴充套件可以實現web service,乙個是nusoap,乙個是php 官方的soap擴充套件,由於soap是官方的,所以我們這裡以soap來實現web service.由於預設是沒有開啟soap擴充套件的,所以自己先看一下soap擴充套件有沒有開啟。在soap編寫web servic...

利用PHP SOAP實現web service

一 什麼是soap?可以做什麼?二 什麼是wsdl?可以做什麼?wsdl 指網路服務描述語言。是一種基於xml編寫的文件。為使用者提供詳細的介面說明書。怎樣向別人介紹你的web服務 web service 有哪些功能,以及每個函式呼叫時的引數呢?你可能會自己寫一套文件,甚至可能會口頭告訴使用你web...