PHP 调用C# WebService
2011-08-31 09:32
302 查看
在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();
}
}
?>
代码如下:
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使用NuSoap调用java/C# webservice乱码问题
- php使用NuSoap调用java/C# webservice的中文乱码问题
- 记一次 PHP调用Java Webservice
- C# 动态调用java webservice,Winform解析Json字符串中特殊值
- C# ASP.NET Webservice调用外部exe无效的解决方法
- C# webservice调用方法总结
- (转载)Net 下采用GET/POST/SOAP方式动态调用WebService C#实现
- C# ASP.NET Webservice调用外部exe无效的解决方法
- C# WebService调用的三大难题
- C# webservice调用方法总结
- 搞定2个问题:C# 动态调用java webservice,Winform解析Json字符串中特殊值
- c#调用Java webService的专题
- C# WebService调用方法
- C# WebService创建、发布、调用的实例讲解
- C# WebService 的动态调用
- C# 调用JAVA WebService
- C# WebService动态调用
- C# WebService调用的三大难题
- C# 调用ExchangeWebservice的相关代码
- C#调用ExchangeWebService发送邮件、查询日程、查询用户已使用邮箱空间