duanhanglekr37902 2013-09-18 09:56
浏览 102

在第1行解析SOAP有效负载的XML错误:格式不正确(无效令牌)

I'm trying to create a webservice with PHP and nuSoap but everytime I try to execute it I'm getting the error:

XML error parsing SOAP payload on line 1: Not well-formed (invalid token)

Can anyone see what's wrong?

service.php

<?php
require 'lib/nusoap.php';

$server = new nusoap_server();
$server->configureWSDL("casamitger" . "urn:casamitger");
$server->wsdl->schemaTargetNamespace = 'urn:casamitger';
include 'functions.php';

//getAvailabilities
$server->wsdl->addComplexType('Availabilities','complexType','struct','all','',array(
   'StartDate' => array('name' => 'StartDate', 'type' => 'xsd:date'), 
   'EndDate' => array('name' => 'EndDate', 'type' => 'xsd:date'),
   'State' => array('name' => 'State', 'type' => 'xsd:string'), 
));

$server->wsdl->addComplexType('ArrayOfAvailabilities', 'complexType', 'array', '', 'SOAP-ENC:Array', array(), array(
    array('ref' => 'SOAP-ENC:arrayType', 'wsdl:arrayType' => 'tns:Availabilities[]')), 'tns:Availabilities');


$server->register(
    'getAvailabilities',
    array(
        "SessionID"       => 'xsd:string', 
        "AccommodationId" => 'xsd:integer'
    ),
    array("return" => 'tns:ArrayOfAvailabilities')
);

    $HTTP_RAW_POST_DATA = isset($HTTP_RAW_POST_DATA) ? $HTTP_RAW_POST_DATA : '';
$server->service($HTTP_RAW_POST_DATA);
?>

functions.php

function getAvailabilities($sessionID, $accommodation_code) {
    $connection = mysqli_connect("localhost", "root", "", "casamitger");
    if (authenticate($sessionID)) {
        $user = getUser($sessionID);
        $query = mysqli_query($connection, "SELECT count(AccommodationId) c FROM UserAccommodations WHERE AccommodationId = '$accommodation_code' AND CompanyId = '$user'") or die();
        $row = mysqli_fetch_object($query);
        $count = $row->c;
        if ($count > 0) {
            $query = mysqli_query($connection, "SELECT StartDate,EndDate,State FROM Availabilities WHERE AccommodationId = '$accommodation_code'") or die();
            $n = 0;
            while ($row = mysqli_fetch_object($query)) {
                $result[$n]['StartDate'] = $row->StartDate;
                $result[$n]['EndDate'] = $row->EndDate;
                $result[$n]['State'] = $row->State;
                $n++;
            }
            return $result;
        }
    }
}

and the client.php

<?php

require 'lib/nusoap.php';
include 'functions.php';

$sessionid          = '1234';
$accommodation_code = '83081';

$client = new nusoap_client("http://192.168.8.155:8090/ws/service.php?wsdl");

$availabilities = $client->call(
    'getAvailabilities', 
    array(
        "SessionID"       => "$sessionid", 
        "AccommodationId" => "$accommodation_code",
    )
);

if ($client->fault) {
    echo 'Fault';
} else {
    $err = $client->getError();
    if ($err) {
        echo $err;
    } else {
        print_r($servicetypes);
    }
}
?>

If I call the method getAvailabilities() directly it works but it doesn't through the web service, any help will be appreciated, thanks.

  • 写回答

0条回答 默认 最新

    报告相同问题?

    悬赏问题

    • ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
    • ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
    • ¥15 手机接入宽带网线,如何释放宽带全部速度
    • ¥30 关于#r语言#的问题:如何对R语言中mfgarch包中构建的garch-midas模型进行样本内长期波动率预测和样本外长期波动率预测
    • ¥15 ETLCloud 处理json多层级问题
    • ¥15 matlab中使用gurobi时报错
    • ¥15 这个主板怎么能扩出一两个sata口
    • ¥15 不是,这到底错哪儿了😭
    • ¥15 2020长安杯与连接网探
    • ¥15 关于#matlab#的问题:在模糊控制器中选出线路信息,在simulink中根据线路信息生成速度时间目标曲线(初速度为20m/s,15秒后减为0的速度时间图像)我想问线路信息是什么