php寫webservice介面

來源:互聯網
上載者:User
用php寫api大部分都是基於http請求的api介面,有時候項目中就讓你用php寫webservice介面。

那就要用到php的擴充soap.

什麼是soap?

Simple Object Access Protocol 簡易物件存取通訊協定 (SOAP)
主要包括下面四部分:
a) SOAP 封裝: 用於將傳輸資料中的內容, 發送端訊息, 接收端資訊和處理方式等資訊封裝起來以準備資料轉送.
b) SOAP 編碼規則: 用於表示傳輸資料中各項的資料類型等資訊
c) SOAP 遠端程序呼叫協定: 用於進行遠端程序呼叫及應答的協議

1.要配置php.ini開啟soap擴充:extension=php_soap.dll; 去掉前面的;

2.寫服務端server.php 這裡我用的傳輸資料為json

代碼:

$soap = new SoapServer(null,array('uri'=>"http://192.168.30.120/"));//ip adr
$soap->addFunction('api_test');
$soap->addFunction(SOAP_FUNCTIONS_ALL);
$soap->handle();
/**
* api介面
* @param array json
*/
function api_test($num){
$num=json_decode($num,1);
$num['res']=$num['num1']+$num['num2'];
return json_encode($num,1);
}

3.寫用戶端代碼,這裡也是用json作為傳輸資料:

代碼:

/**
* 測試php webservice
* @param array json
*/
try {
$client = new SoapClient(null,
array('location' =>"http://192.168.30.120/server.php",'uri' => "http://127.0.0.1/")
);
$num['num1']=1;
$num['num2']=2;
$num=json_encode($num,1);
$rs=$client->api_test($num);
echo $rs;
echo "

";
print_r(json_decode($rs,1));
echo "
";
} catch (SoapFault $fault){
echo "Error: ",$fault->faultcode,", string: ",$fault->faultstring;
}
?>

4.在瀏覽器中輸入localhost/client.php調用介面會得到:


php webservice介面OK!

以上就介紹了php寫webservice介面,包括了方面的內容,希望對PHP教程有興趣的朋友有所協助。

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.