【发布时间】:2013-08-31 13:42:00
【问题描述】:
我正在使用zend_soap_server 开发一个肥皂网络服务。
我使用Zend_Soap_AutoDiscover 自动生成我的网络服务的wsdl。
这里是代码
public function indexAction() { // my websrvice method $server = new Zend_Soap_Server("admin/webservice/wsdl"); $server->setEncoding('UTF-8'); $server->setClass('Webservice'); $server->handle(); } public function wsdlAction() { // my wsdl method $wsdl = new Zend_Soap_AutoDiscover(); $wsdl->setClass('Webservice'); $wsdl->setUri("/admin/webservice"); $wsdl->handle(); }
我的问题是,当我查看生成的 wsdl 的来源时,第一行是:
<?xml version="1.0"?>
但我想要 xml 标签中的编码:
<?xml version="1.0" encoding="UTF-8"?>
我应该怎么做才能得到这个?
提前致谢。
【问题讨论】:
-
您使用的是什么版本的 PHP 和 Zend Framework?我问的原因是因为我尝试了一个没有调用
setMethod()的简单测试,并且默认情况下我得到了编码属性。我正在运行 PHP 5.3.8 和 ZF 1.12。 PHP 版本可能很重要的原因是,Zend_Soap和它的兄弟姐妹基本上只是 PHP 原生 SOAP 类的包装器。 -
我使用的是 php 5.4.13 和 ZF 1.12
-
哦,我刚刚意识到我不是在查看 WSDL 输出,而是查看请求和响应 XML,它们都包含编码。我有一个新想法,我将添加它作为您问题的潜在答案。
标签: php web-services zend-framework wsdl zend-soap