首页 > 代码库 > PHP 调用C# WebService

PHP 调用C# WebService

在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();    }}?>

 

PHP 调用C# WebService