Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/232.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP SOAPClient WCF发送参数时出错_Php_Wcf_Web Services_Soap_Soap Client - Fatal编程技术网

PHP SOAPClient WCF发送参数时出错

PHP SOAPClient WCF发送参数时出错,php,wcf,web-services,soap,soap-client,Php,Wcf,Web Services,Soap,Soap Client,我正在使用PHP SoapClient开发一个Web服务 Web服务url为: 这是我的代码: <?php ini_set("soap.wsdl_cache_enabled", "0"); $pin = new SoapClient("http://web.abaseguros.com/AutoConnect/ACCatalogos.svc?wsdl"); class Token { var $usuario; var $password; function T

我正在使用PHP SoapClient开发一个Web服务

Web服务url为:

这是我的代码:

<?php

ini_set("soap.wsdl_cache_enabled", "0");
$pin = new SoapClient("http://web.abaseguros.com/AutoConnect/ACCatalogos.svc?wsdl");

class Token {
    var $usuario;
    var $password;
    function Token($user,$pass) {
        $this->usuario = $user;
        $this->password = $pass;
    }
}

//User and Password for the token object
$Token = new Token('usuarioWCF','Pa$$w0rd');    

//XML 'Entrada' String
$Entrada = "<CAT><NEG>5786</NEG></CAT>"; 

$result = $pin->ObtenerMarcas($Token,$Entrada);

您的Soap客户端不知道如何反序列化对象令牌。您需要将该令牌对象转换为关联数组,并将该数组用作操作的参数

$pin->ObtenerMarcas(get_object_vars($Token),$Entrada);

恐怕即使您清除了此错误,您也无法成功使用该服务。看起来soap头中需要a令牌。您编写的C代码并没有向您展示所有内容,它将实现封装在代理类中。如果有文档,您需要进行读取,否则您必须读取嵌入在提供的全局wsdl链接中的导入wsdl文件。

它不起作用,致命错误:未捕获的SoapFault异常:[a:反序列化失败]格式化程序在尝试反序列化消息时引发异常:反序列化操作“ObtenerMarcas”的请求消息体时出错。应为命名空间“”中的结束元素“Body”。从命名空间“”中找到元素“param1”。是的,我正在修补使用令牌对象发送sap标头的问题,但没有相关文档。值得一看c代理类内部的实现。抱歉,没有文档就帮不上什么忙
$pin->ObtenerMarcas(get_object_vars($Token),$Entrada);