0
我正在使用PHP SoapClient進行Web服務。PHP SOAPClient WCF發送參數錯誤
WebService的網址是:http://web.abaseguros.com/AutoConnect/ACCatalogos.svc?wsdl
這裏是我的代碼:
<?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);
但是PHP打印出以下錯誤信息:
Fatal error: Uncaught SoapFault exception: [a:DeserializationFailed] when i execute the script.
公司給了我一個示例代碼寫在C#
private void Obtener_Catalogo_ABASeguros()
{
string strEntrada, strSalida;
strEntrada = 「<CAT><NEG>5786</NEG></CAT>「; +
ACCatalogosClient proxy = new ACCatalogosClient();
Token token = new Token();
token.usuario = "usuarioWCF";
token.password = "Pa$$w0rd";
try
{
strSalida = proxy.ObtenerMarcas(token, strEntrada);
}
catch (FaultException<Error> ex)
{
txtCotSalida.Text = string.Format("Ocurrio un error en el WCF:\n " +
"Origen: {0}\n "+
"Mensaje: {1}\n "+
"Stack: {2}", ex.Detail.Origen, ex.Detail.Mensaje, ex.Detail.StackTrace);
}
但我仍無法理解參數如何在兩種語言上發送。
任何幫助?
它沒有工作, 致命錯誤:未捕獲的SOAPFault異常:[A:DeserializationFailed]格式化引發了異常,而試圖反序列化消息:錯誤在反序列化請求消息的主體進行操作「ObtenerMarcas」。從命名空間'http://schemas.xmlsoap.org/soap/envelope/'預期的結束元素'Body'。從命名空間''找到元素'param1'。 –
是的,我在發送帶標記對象的sap頭文件,但沒有關於它的文檔。 –
值得看看c代理類中的實現。對不起,沒有文件幫助不了多少 – DavidLin