wcf如何提供接口给php,PHP调用WCF提供的方法

一、准备工作

1、安装wampserver:过程略

2、配置wampserver:

2.1打开php.ini文件,去掉 ;extension=php_soap.dll这里那个分号。

也有说把这个 ;extension=php_openssl.dll前面的分号也去掉的。

2.2 如上图,将php_soap打上√。

2.3 如上图,打开httpd.conf文件,找到Listen 80 ,将80端口改成一个较大的端口,如8000。因为80端口也能别的程序用着。

在这个directory里面有php页面。Index.php就是默认的页面。在浏览器里输入  http://localhost:8000/   会进入默认的首页

二、建立WCF服务

可以直接在Web项目里,右键—添加---新建项---wcf服务,会生成如下两个文件。

在这两个文件中进行测试。上面这样操作省了配置,还有启动服务。只有运行Web项目,服务就起来了。

注意事项:接口和实现类里面对应方法的参数名要一致。

如下, 参数id名要一样。Article是一个文章类

在IService1.cs中:

[OperationContract]

Article GetArticle(string id);

在Service1.svc中:

Public  Article GetArticle(string id)

{

//do something

}

三、PHP调用WCF中的方法

Php可以调用的C#方法格式(已测试):

下面是c#方法格式

Public  string   Fun();

Public  string   Fun(string  str) ;  //这个只测过传string和int类型,参数数量可以多个。

Public  Article  GetArticle(string id);

Publis  String[]   GetStrs();

Public  ListGetArticleList(string  flag);

Public  void  AddArticle(Article  art);

再次强调,参数名要和对应接口里的参数名一致。

--------------------------------------------------------------------------------------------------------------------

Php调用:

【Public  void  AddArticle(Article  art)】

说明:下面的服务地址,可以在Service1.svc文件上右键—浏览器查看

$client = new SoapClient ('http://localhost:8000/WCF/Service1.svc?wsdl');

$result= $client->AddArticle(

array (

'art' => array (

'TITLE' => '新建的php文章标题'

)

));

?>

注意art是Article类的一个实例  , TITLE是Article类中的一个属性。

【Public  string   Fun(string  str);】

$client = new SoapClient ('http://localhost:8000/WCF/Service1.svc?wsdl');

$obj->str="3";

$result= $client-> Fun ($obj);

echo $ result -> FunResult;

?>

注意art  , TITLE是Article类中的一个属性。

【Public  Article  GetArticle(string id);】

$client = new SoapClient ('http://localhost:8000/WCF/Service1.svc?wsdl');

$obj->id="3";

$result= $client->GetArticle($obj);

echo var_export($result->GetArticleResult->TITLE);

echo "

";

echo var_export($result->GetArticleResult->AUTHOR);

?>

注意:TITLE和AUTHOR是Article类的两个属性。

【Public  ListGetArticleList(string  flag);】

$client = new SoapClient ('http://localhost:8000/WCF/Service1.svc?wsdl');

$obj-> flag ="3";

$result= $client-> GetArticleList ($obj);

echo var_export($result-> GetArticleListResult-> Article);

echo var_export($result-> GetArticleListResult-> Article[0]-> TITLE);

【Publis  String[]   GetStrs();】

$client = new SoapClient ('http://localhost:8000/WCF/Service1.svc?wsdl');

$result =$client->GetStrs();

$aa= $result->GetStrsResult;   //输出整个数组

//$aa= $result->GetStrsResult->string[0];   //输出数组中第0项

print_r( $aa);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值