Windows应用商店应用无法识别Web服务的功能

时间:2014-03-16 10:45:47

标签: php windows windows-store-apps nusoap

我做了一个网络服务:客户端&服务器在我的浏览器中工作正常但是当我将它添加到我的引用中时,我无法访问我的函数!

这是我的网络服务器代码:

<?php
 require 'nusoap.php';
 $server=new nusoap_server();
 $server->configureWSDL("demo","urn:demo");
$server->soap_defencoding = 'utf-8';

$server->wsdl->addComplexType('getAllKeyData','complexType','struct','all','',
 array(
    'id'=> array('name'=>'id', 'type' =>'xsd:int'),
    'emailadres'=> array('name'=>'emailadres', 'type' =>'xsd:String'),
    'familienaam'=> array('name'=>'familienaam', 'type' =>'xsd:String'),
    'paswoord'=> array('name'=>'paswoord', 'type' =>'xsd:String'),
    'status'=> array('name'=>'status', 'type' =>'xsd:String'),
    'voornaam'=> array('name'=>'voornaam', 'type' =>'xsd:String')
    )
);

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


 $server->register(
    'getAllKeys', //name of function
    array(), //inputs
    array('return'=>'tns:MySoapObjectArray'), //outputs
    'urn:getAllKeyswsdl',
    'urn:getAllKeyswsdl#getAllKeys',
    'rpc',
    'encoded',
    'Processes an array of MySoapObjects and returns one of them'
);

function getAllKeys(){


    $con=mysql_connect('localhost','root','')or die("cannot connect"); 

    mysql_select_db('test')or die("cannot select db");

    $sql = 'Select * from personen';
    $result=mysql_query($sql,$con);
    $out=array();
    while($row = mysql_fetch_assoc($result))

    {
        $out[]=$row;
    }

    return $out;



}

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

?>

当然我用我的网络客户端测试了这个,我可以在数组中完美地看到我的数据:

          [0] => Array
            (
                [id] => 1
                [emailadres] => braril.com
                [familienaam] => Vandenbogaerde
                [paswoord] => test
                [status] => aktief
                [voornaam] => Bram
            )

        [1] => Array
            (
                [id] = 50
                [emailadres] => koeaenussel.be
                [familienaam] => Christiaens
                [paswoord] => HoofdletterH
                [status] => aktief
                [voornaam] => Koen
            )

        [2] => Array
            (
                [id] => 5
                [emailadres] => som
                [familienaam] => Furler
                [paswoord] => Titanium
                [status] => aktief
                [voornaam] => Sia Kate Isobelle
            )

现在我将我的网络服务器添加到我的服务参考中 然后我宣布我的服务就像这样:

 var client2 = new ServiceReference2.demoPortTypeClient();

但我现在的大问题是我无法使用我在网络服务器中创建的功能!

http://prntscr.com/319wv2

如果您有任何想法,请帮忙!

1 个答案:

答案 0 :(得分:0)

问题解决了:

$server->register(
    'getAllKeys', //name of function
    array(), //inputs
    array('return'=>'xsd:Array'), //outputs
    'urn:getAllKeyswsdl',
    'urn:getAllKeyswsdl#getAllKeys',
    'rpc',
    'encoded',
    'Processes an array of MySoapObjects and returns one of them'
);

返回类型必须是:xsd:Array