+ -
当前位置:首页 → 问答吧 → php webservice中 请问如何把一个对象return给客户端?

php webservice中 请问如何把一个对象return给客户端?

时间:2011-04-14

来源:互联网

这是我的webservice的方法:
PHP code
public function GetInfo()
    {
        
        class CenterInfo
        {
            private $ID='84fc2103-38ef-46ac-807b-9f5ad761ac00';
            private $Type="SubDotnetCenter";
            private $RootPath="D:\\Program Files\\JiangMin\\Center\\";
            private $DatabaseType="MsSql";
        }
        $a=new CenterInfo();
        $GetInfoResult=json_encode($a);
         /// <summary>
        /// 获取当前登录控制中心的相关信息
        /// 
        /// </summary>
        /// <returns>
        ///    返回控制中心的相关信息,主要是控制台实现中需要的。
        /// </returns>
        ///
         return  Array("GetInfoResult"=> new CenterInfo());
    }


这是wsdl中该方法的以及返回值的定义:
XML code
<s:element name="GetInfo">
                <s:complexType />
            </s:element>
            <s:element name="GetInfoResponse">
                <s:complexType>
                    <s:sequence>
                        <s:element minOccurs="0" maxOccurs="1" name="GetInfoResult"
                            type="tns:CenterInfo" />
                    </s:sequence>
                </s:complexType>
            </s:element>
            <s:complexType name="CenterInfo">
                <s:sequence>
                    <s:element minOccurs="1" maxOccurs="1" name="ID" type="s1:guid" />
                    <s:element minOccurs="1" maxOccurs="1" name="Type"
                        type="tns:NodeType" />
                    <s:element minOccurs="0" maxOccurs="1" name="RootPath"
                        type="s:string" />
                    <s:element minOccurs="1" maxOccurs="1" name="DatabaseType"
                        type="tns:EDataBase" />
                </s:sequence>
            </s:complexType>
            <s:simpleType name="NodeType">
                <s:restriction base="s:string">
                    <s:enumeration value="DesktopClient" />
                    <s:enumeration value="ServerClient" />
                    <s:enumeration value="LinuxClient" />
                    <s:enumeration value="Group" />
                    <s:enumeration value="TopestDotnetCenter" />
                    <s:enumeration value="SubDotnetCenter" />
                    <s:enumeration value="TopestPhpCenter" />
                    <s:enumeration value="SubPhpCenter" />
                </s:restriction>
            </s:simpleType>
            <s:simpleType name="EDataBase">
                <s:restriction base="s:string">
                    <s:enumeration value="MsSql" />
                    <s:enumeration value="Sqlite" />
                </s:restriction>
            </s:simpleType>


我像上边那样return时候 .net的客户端报错:

响应消息的内容类型 text/html 与绑定(text/xml; charset=utf-8)的内容类型不匹配。如果使用自定义编码器,请确保正确实现 

客户端不能变,请问我的php webservice这端应该如何return呢?

作者: MMDD0827   发布时间: 2011-04-14

你的编码格式 不同


统一编码格式

作者: fengyarongaa   发布时间: 2011-04-14

请问应该如何统一编码呢 ? 应该修改哪里呢 ?

作者: MMDD0827   发布时间: 2011-04-14