php webservice中 请问如何把一个对象return给客户端?
这是我的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呢?
[解决办法]
你的编码格式 不同
统一编码格式