php怎么调用asp.net的webservice
我想调用Discuz!X2.5,使论坛注册的账号直接可以登录并使用asp.net程序 --------------------编程问答-------------------- 给你一个例子,你参考一下在VS2010中新建WebService:Finance.asmx
代码如下:
using System.Web.Services;
namespace WebTest.WebService
{
///
/// Finance 的摘要说明
///
[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
代码如下:
--------------------编程问答-------------------- 1楼正解,可参考下 --------------------编程问答--------------------
<?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();
}
}
?>
同意!
补充:.NET技术 , ASP.NET