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 List<Article> GetArticleList(string flag);
Public void AddArticle(Article art);
再次强调,参数名要和对应接口里的参数名一致。
--------------------------------------------------------------------------------------------------------------------
Php调用:
【Public void AddArticle(Article art)】
说明:下面的服务地址,可以在Service1.svc文件上右键—浏览器查看
<?php
$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);】
<?php
$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);】
<?php
$client = new SoapClient ('http://localhost:8000/WCF/Service1.svc?wsdl');
$obj->id="3";
$result= $client->GetArticle($obj);
echo var_export($result->GetArticleResult->TITLE);
echo "<br/>";
echo var_export($result->GetArticleResult->AUTHOR);
?>
注意:TITLE和AUTHOR是Article类的两个属性。
【Public List<Article> GetArticleList(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);
PHP调用WCF提供的方法的更多相关文章
- 实现jquery.ajax及原生的XMLHttpRequest跨域调用WCF服务的方法
关于ajax跨域调用WCF服务的方法很多,经过我反复的代码测试,认为如下方法是最为简便的,当然也不能说别人的方法是错误的,下面就来上代码,WCF服务定义还是延用上次的,如: namespace Wcf ...
- 实现jquery.ajax及原生的XMLHttpRequest调用WCF服务的方法
废话不多说,直接讲解实现步骤 一.首先我们需定义支持WEB HTTP方法调用的WCF服务契约及实现服务契约类(重点关注各attribute),代码如下: //IAddService.cs namesp ...
- jquery或者JavaScript调用WCF服务的方法
/****************************************************************** * Copyright (C): 一心堂集团 * CLR版本: ...
- IOS调用WCF提供的服务方法,但是方法的参数是WCF那边自定义的对象,这样有办法调用么,如果可以IOS应该怎么传参呢?请问有了解的么,
最近做一个项目后端使用WCF接收Android手机拍照并带其它参数保存到服务器里:刚好把最近学习的WCF利用上,本以为是个比较简单的功能应该很好实现,没想到其中碰到不少问题,在网上搜索很久一直没有想到 ...
- 调用WCF接口的方法
通过对接口调用可能出现的异常作出判断和处理,避免资源的浪费和占用~ public class SvcHelper { public static void Using(T client, Action ...
- 学习调用WCF服务的各种方法
1.开发工具调用WCF 这中方法很方便也很简单,很多工作VS就帮我们完成了.相信大家也不会对这种方法陌生.这里简单提一下.打开VS,在项目中添加服务引用: 在config中自动声明了有关服务的节点信息 ...
- [转]学习 WCF (6)--学习调用WCF服务的各种方法
转自:http://www.cnblogs.com/gaoweipeng/archive/2009/07/26/1528263.html 作者这篇博文写得很全面. 根据不同的情况,我们可以用不同的方法 ...
- 实现在GET请求下调用WCF服务时传递对象(复合类型)参数
WCF实现RESETFUL架构很容易,说白了,就是使WCF能够响应HTTP请求并返回所需的资源,如果有人不知道如何实现WCF支持HTTP请求的,可参见我之前的文章<实现jquery.ajax及原 ...
- 动态调用WCF
最近在做的一个项目中需要动态调用WCF地址,因为有很多终端服务器,而每台终端服务器上都部署一个WCF服务,中央服务器需要不定时调用其中某个或者多个WCF服务执行相关操作,因此添加引用及配置文件配置的方 ...
随机推荐
- innodb compressed 表碰到的问题,BUG么?
innodb compressed 表碰到的问题 (摘自 http://papaisadba.puyu.me/?p=239) compressed innodb 表是MySQL 5.5开始提供的功能, ...
- Sql Server中的游标最好只用于有主键或唯一键的表
游标cursor,我想大多数人都在sql server里面用过.当一个表数据量不太大的时候,游标还是可以用的,毕竟游标是循环一个表中每一行数据的最简便办法.但是如果你用一个游标去循环一个没有主键或唯一 ...
- pong game using ncurses
bounce2d2.c /* * bounce2d 1.0 * bounce a character (default is 'o') around the screen * defined by s ...
- [Synology] [群晖] 关闭被占用的文件
1. Control Panel: Control Panel > Terminal & SNMP Enable SSH service 2. SSH into Synology 3. ...
- WEB 报表导入导出操作
/** * 报表导出 * @param response */ @RequestMapping("/stuExcel") @LogAnno(value="对学生数据进行了 ...
- Linux 中 FQDN 查询及设置
FQDN:(Fully Qualified Domain Name)全限定域名:同时带有主机名和域名的名称 其实就是标注一个主机的完整域名.比如我的域名为 ifrom.top 那么它的邮件服务器的主机 ...
- Windows 常识大全【all】
解决电脑卡顿问题 电脑常见技巧大全 电脑运行命令CMD集锦 开启Windows 7系统的“上帝模式” Win7下设置护眼的电脑豆沙绿界面 零基础如何组装电脑?装机之家手把手教您电脑组装教程图解 [Ex ...
- 团队作业——Beta冲刺3
团队作业--Beta冲刺 冲刺任务安排 杨光海天 今日任务:浏览详情界面的开发 明日任务:浏览详情界面的开发 吴松青 今日任务:与队长一同进行图片详情的开发,接触了一些自己没接触过的知识点并向队友学习 ...
- Spring-IOC RootBeanDefinition源码分析
GenericBeanDefinition是一站式的标准bean definition,除了具有指定类.可选的构造参数值和属性参数这些其它bean definition一样的特性外,它还具有通过par ...
- BZOJ4236:JOIOJI(乱搞)
Description JOIOJI桑是JOI君的叔叔.“JOIOJI”这个名字是由“J.O.I”三个字母各两个构成的. 最近,JOIOJI桑有了一个孩子.JOIOJI桑想让自己孩子的名字和自己一样由 ...