在VS2010中建立WebService:Finance.asmx
代碼如下:
using System.Web.Services;
namespace WebTest.WebService
{
/// <summary>
/// Finance 的摘要說明
/// </summary>
[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[System.ComponentModel.ToolboxItem(false)]
// 若要允許使用 ASP.NET AJAX 從腳本中調用此 Web 服務,請取消對下行的注釋。
// [System.Web.Script.Services.ScriptService]
public class Finance : System.Web.Services.WebService
{
[WebMethod]
public int add(int a,int b)
{
return a + b;
}
}
}
建立PHP檔案:test.php
代碼如下:
<?php
$client = new SoapClient('http://localhost/WebService/Finance.asmx?wsdl');
if ($client !== false)
{
//解決中文亂碼問題
$client->soap_defencoding = 'utf-8';
$client->decode_utf8 = false;
$client->xml_encoding = 'utf-8';
// 使用關聯數組,鍵名對應C#方法的參數名
$params = array('a' => 1, 'b' => 2);
// 可以使用 $client->__soapCall() 或 $client->WebService方法名() 兩種方式調用
// 使用 $client->__soapCall() 調用時應将 $param 再包裹一層
try
{
$result = $client->__soapCall("add", array("parameters" => $params));
print_r($result->addResult);
echo "<br/>";
// 使用 $client->WebService方法名() 調用時無需另行包裹 $param
$params = array('a' => 3121, 'b' => 2);
$result = $client->add($params);
print_r($result->addResult);
}
catch(Exception $ex)
{
echo $ex->getMessage();
}
}
?>