使用PHP SOAP服务返回数组

时间:2011-02-13 08:36:29

标签: c# php arrays soap service

当我开始这个时,我对SOAP一无所知或者它是如何工作的。我在前几个小时学到了很多东西,结果是对SOAP服务的操作测试(我用PHP编写)。我能够在PHP和Visual Studio中创建SOAP客户端(这是我真正的目标)并返回我想要的信息。

因为它只是一个测试,我想返回更多(和更好的格式化)信息,我开始搞乱它。我添加了一些类型并编写了一些我导入的模式。当我完成添加我需要的所有内容时(这只是一个结果)我保存了所有内容并进行了测试。它运行没有错误,但没有返回任何内容。

我正在尝试返回一个包含8个元素的数组,这些元素具有不同的类型。以下是该数组的元素和类型:

标题 - 字符串 LinkId - int 日期 - int 作者 - 字符串 内容 - 字符串 Id - int 图标 - int 编辑 - 布尔

GetNews函数将返回25个这样的数组(每页,输入是一个整数,可以获得结果页面。)

我无法弄清楚如何序列化数组,以便SOAP能够正确地返回它。

这是我的WSDL文件的URL:

http://api.infectionist.com/soap.wsdl

请帮助我,我完全陷入困境。我看不出代码有什么问题,而且它在PHP和Visual Studio中运行没有错误,它只是返回一个空结果。

1 个答案:

答案 0 :(得分:0)

我猜你试图从PHP中一次性返回整个数组?如果是这样,您需要确保返回XML字符串。像:

<?php

return '
    <data>
        <title>Actual title</title>
        <linkId>154278</linkId>
        ...
    </data>
';

?>

您是否考虑过使用JSON字符串作为从SOAP服务器发送数据的替代方法?这将允许您在一个元素中包含所需的所有元素,并保留以后添加/删除元素的灵活性(您需要通知您的客户)。