一、准备工作

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提供的方法的更多相关文章

  1. 实现jquery.ajax及原生的XMLHttpRequest跨域调用WCF服务的方法

    关于ajax跨域调用WCF服务的方法很多,经过我反复的代码测试,认为如下方法是最为简便的,当然也不能说别人的方法是错误的,下面就来上代码,WCF服务定义还是延用上次的,如: namespace Wcf ...

  2. 实现jquery.ajax及原生的XMLHttpRequest调用WCF服务的方法

    废话不多说,直接讲解实现步骤 一.首先我们需定义支持WEB HTTP方法调用的WCF服务契约及实现服务契约类(重点关注各attribute),代码如下: //IAddService.cs namesp ...

  3. jquery或者JavaScript调用WCF服务的方法

    /****************************************************************** * Copyright (C): 一心堂集团 * CLR版本: ...

  4. IOS调用WCF提供的服务方法,但是方法的参数是WCF那边自定义的对象,这样有办法调用么,如果可以IOS应该怎么传参呢?请问有了解的么,

    最近做一个项目后端使用WCF接收Android手机拍照并带其它参数保存到服务器里:刚好把最近学习的WCF利用上,本以为是个比较简单的功能应该很好实现,没想到其中碰到不少问题,在网上搜索很久一直没有想到 ...

  5. 调用WCF接口的方法

    通过对接口调用可能出现的异常作出判断和处理,避免资源的浪费和占用~ public class SvcHelper { public static void Using(T client, Action ...

  6. 学习调用WCF服务的各种方法

    1.开发工具调用WCF 这中方法很方便也很简单,很多工作VS就帮我们完成了.相信大家也不会对这种方法陌生.这里简单提一下.打开VS,在项目中添加服务引用: 在config中自动声明了有关服务的节点信息 ...

  7. [转]学习 WCF (6)--学习调用WCF服务的各种方法

    转自:http://www.cnblogs.com/gaoweipeng/archive/2009/07/26/1528263.html 作者这篇博文写得很全面. 根据不同的情况,我们可以用不同的方法 ...

  8. 实现在GET请求下调用WCF服务时传递对象(复合类型)参数

    WCF实现RESETFUL架构很容易,说白了,就是使WCF能够响应HTTP请求并返回所需的资源,如果有人不知道如何实现WCF支持HTTP请求的,可参见我之前的文章<实现jquery.ajax及原 ...

  9. 动态调用WCF

    最近在做的一个项目中需要动态调用WCF地址,因为有很多终端服务器,而每台终端服务器上都部署一个WCF服务,中央服务器需要不定时调用其中某个或者多个WCF服务执行相关操作,因此添加引用及配置文件配置的方 ...

随机推荐

  1. 《SQLSERVER2012实施与管理实战指南》前4章节笔记内容

    <SQLSERVER2012实施与管理实战指南>前4章节笔记内容 <SQLSERVER2012实施与管理实战指南>的前面4章是<SQLSERVER企业级平台管理实践> ...

  2. The attribute required is undefined for the annotation type XmlElementRef

    异常描述: 几天没用的项目导进Eclipse中发现有异常 public class BooleanFeatureType extends FeatureBaseType{ @XmlElementRef ...

  3. 500.19 ,错误:4.00x80070005

    直接把网站根目录添加上everyone权限即可

  4. matlab使用总结2

    1.MATLAB中a./b与a/b的区别以及左除和右除 http://blog.csdn.net/wk119911/article/details/7452411 a=[1 2;3 4]; b=[1 ...

  5. RSA 非对称加密,私钥转码为pkcs8 错误总结

    RSA 非对称加密,私钥转码为pkcs8 错误总结 最近在和某上市公司对接金融方面的业务时,关于RSA对接过程中遇到了一个坑,特来分享下解决方案. 该上市公司简称为A公司,我们简称为B公司.A-B两家 ...

  6. 【Alpha 冲刺】 3/12

    今日任务总结 (未完成) 人员 今日原定任务 完成情况 遇到问题 贡献值 胡武成 完成API文档编写 已完成App端api,Web端api还在持续 时间紧 孙浩楷 理解掌握在线编辑插件使用 加深了对所 ...

  7. C结构体数组赋值

    #include <stdio.h> #include <stdlib.h> struct MyStruct { int a; char b; }; struct MyStru ...

  8. 2017-2018-2 20165318 实验三《Java面向对象程序设计》实验报告

    2017-2018-2 20165318 实验三<Java面向对象程序设计>实验报告 一.实验报告封面 课程:Java程序设计        班级:1653班        姓名:孙晓暄  ...

  9. php输出日志

    error_log('你要输出的信息', 3, 'E:\work\jiajiayue\Application\Api\Controller\1.txt');die; php error_log记录日志 ...

  10. docker中使用的镜像加速器可以自己生成

    只要你到该网址https://cr.console.aliyun.com/cn-hangzhou/mirrors登录(我使用的是支付宝帐号),然后你如下图操作,就能够看见你的加速器地址了,只要你登录就 ...