接口-php怎么调用wcf服务,调用参数是对象参数。

问题描述

php怎么调用wcf服务,调用参数是对象参数。

.net做的wcf接口,部署IIS上访问是可以的如图:

我用php soap调用测试,是否能通,也是可以的:
<?php
header('Content-Type: text/plain');
$client = new SoapClient('http://testu.sh.jinri.com/Flight.User.SOA/SuggestService.svc?wsdl');
echo '

';
echo "提供的方法n";
print_r( $client->getFunctions ());
echo "相关的数据结构n";
print_r($client->
getTypes () );
echo '';
?>
浏览器上看到的结果如图:

调用wcf中的这个方法:GetSuggestList
这个方法在接口里面是这样的:
public GetSuggestListResponse GetSuggestList(GetSuggestListRequest request)
所以参数是个对象
我用PHP调用如下:
$client = new SoapClient('http://testu.sh.jinri.com/Flight.User.SOA/SuggestService.svc?wsdl');
$param = array('UserId'=>'1920','PageIndex'=>'1','PageSize'=>'5');
print_r($client->GetSuggestList($param));
但是抛出这样的的错误:
Fatal error: Uncaught SoapFault exception: [a:InternalServiceFault] 未将对象引用设置到对象的实例。 in D:APMServ5.2.6wwwhtdocswsdltestindex.php:22 Stack trace: #0 [internal function]: SoapClient->__call('GetSuggestList', Array) #1 D:APMServ5.2.6wwwhtdocswsdltestindex.php(22): SoapClient->GetSuggestList(Array) #2 {main} thrown inD:APMServ5.2.6wwwhtdocswsdltestindex.php on line 22

求大神帮忙,整了一天了,不知道啥原因。

解决方案

wcf做成http绑定和restful的形式,这样php直接访问就可以调用了。图片挂了,看不到。

时间: 2016-01-04

接口-php怎么调用wcf服务,调用参数是对象参数。的相关文章

Silverlight同步(Synchronous)调用WCF服务

Silverlight的RIA应用中访问远端的WebService或WCF服务,都是通过异步线程模式调用的.在某些情况下我们的调用是需要同步进行,虽然Silverlight没有内置同步线程模式调用远端服务接口,但是我们可以通过多线程的处理来伪装出同步调用的实现.在.NET Framework的多线程编程中提供了丰富的线程接口,其中AutoResetEvent和ManualResetEvent在多线程编码中最为常用,本文将介绍如何通过AutoResetEvent的线程等待特性实现Silverlig

jQuery Ajax调用WCF服务详细教程_jquery

这两天在写基于WCF服务的后台框架,过程中遇到了一些挫折,经过努力全部解决了,在此分享给大家,使用的工具是Visual Studio 2013. 该后台需要支持通过json来传递和接收数据. 首先,说说搭建过程. 第一步:创建WCF服务应用程序项目WCF. 第二步,创建服务使用的数据类 using System; using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations.Sch

一起谈.NET技术,Silverlight同步(Synchronous)调用WCF服务

Silverlight的RIA应用中访问远端的WebService或WCF服务,都是通过异步线程模式调用的.在某些情况下我们的调用是需要同步进行,虽然Silverlight没有内置同步线程模式调用远端服务接口,但是我们可以通过多线程的处理来伪装出同步调用的实现.在.NET Framework的多线程编程中提供了丰富的线程接口,其中AutoResetEvent和ManualResetEvent在多线程编码中最为常用,本文将介绍如何通过AutoResetEvent的线程等待特性实现Silverlig

Silverlight同步(Synchro“.NET研究”nous)调用WCF服务

Silverlight的RIA应用中访问远端的WebService或WCF服务,都是通过异步线程模式调用的.在某些情况下我们的调用是需要同步进行,虽然Silverlight没有内置同步线程模式调用远端服务接口,但是我们可以通过多线程的处理来伪装出同步调用的实现.在.NET Framework的多线程编程中提供了丰富的线程接口,其中AutoResetEvent和ManualResetEvent在多线程编码中最为常用,本文将介绍如何通过AutoResetEvent的线程等待特性实现Silverlig

jQuery实现ajax调用WCF服务的方法(附带demo下载)_jquery

本文实例讲述了jQuery实现ajax调用WCF服务的方法.分享给大家供大家参考,具体如下: 关于AJAX调用WCF服务分为跨域和不跨域两种方式,今天咱们先介绍下不跨域下的调用方法.DEMO是在VS2008写的. 经过测试与研究,发现AJAX调用WCF服务必须满足以下条件 1.wcf的通讯方式必须使用webHttpBinding 2.必须设置<endpointBehaviors>节点的值 3.服务的实现必须添加标记 复制代码 代码如下: [AspNetCompatibilityRequirem

如何在调用WCF服务之前弹出一个确认对话框?

昨天有人在微博上问我如下一个问题: 老蒋,客户端调用wcf的一个接口函数时,有没有什么办法可以先弹出一个确认框,确认后再执行调用.因为这个接口函数再很多地方都执行了调用,所以我想在某个入口进行统一地弹出一个确认框... 其实这个问题可以通过WCF的扩展来完成,具体来说这个扩展涉及到一个我们不太常用的组件"InteractiveChannelInitializer",在我的<WCF全面解析>中对它有过概括性的介绍.InteractiveChannelInitializer实现

flex-oracle序列,循服调用wcf服务导致的的问题问题

问题描述 oracle序列,循服调用wcf服务导致的的问题问题 有个程序是wcf+flex,现在要使用for循环来调用wcf的一个插入服务,要插入的目的表已有个序列了,我发现当我的循环次数越多,调用改服务越频繁后,出现的ORA-00001: 违反唯一约束条件的报错也越来越多. 我想知道这是什么原因,有什么解决办法? 解决方案 在wcf中的接口处使用单例. 解决方案二: ORA-00001: 违反唯一约束条件的报错也越来越多. 这是主键值冲突,每次更新前取一下序列.nextval,然后更新,不会出

jQuery ajax调用WCF服务实例_jquery

恩,在由瘦客户端转换成胖浏览器端的"潮流"下,必然要使用JavaScript调用后台的各种服务. 屌丝所维护的产品通信都是使用的WCF服务,因此必然要学习这样的内容.借用jQuery强大的库,使用JavaScript访问WCF服务非常简便.同事研究了一个breeze库,那么屌丝就来试验一下ajax.这里把实现简单地记录以便马克一下,以后忘了就看这篇日志来作弊. 一.更改WCF服务的配置 默认情况下,WCF服务是不允许使用HTTP请求来访问的.我们需要将WCF服务的配置文件(注意如果有其

不要在using语句中“.NET研究”调用WCF服务

如果你调用WCF服务时,像下面的代码这样在using语句中进行调用,需要注意一个问题. using (CnblogsWcfClient client = new CnblogsWcfClient()){ client.Say("Hello, cnblogs.com!");} 上面这段代码看上去没问题,CnblogsWcfClient是一个自动生成的WCF客户端代理,继承自System.ServiceModel.ClientBase.using语句结束时,会调用ClientBase实现的