所有
我在代码下面创建了一个soap服务器。我发现在PHP中创建wsdl文件有点困难。所以我决定使用非wsdl模式。
$soapServer = new SoapServer(NULL,array('uri'=>'http://com.test.env',
'encoding'=>'UTF-8'));
$soapServer->addFunction("workprocess_orders_api_add");
$soapServer->addFunction("workprocess_list_api_get_local_name");
$soapServer->handle();
但是当我尝试访问此程序时,它什么都不打印。 web浏览器和程序(我使用SoapClient)
$client = new SoapClient(NULL,array('uri'=>'http://com.test.env',
'location'=>'http://localhost/~breeze.kay/ams/workprocess/api/soap/',
'trace'=>1,
'style' => SOAP_DOCUMENT,
'use' => SOAP_LITERAL));
var_dump($client->__call('workprocess_orders_api_add',array())); //print null
var_dump($client->__getFunctions()); //print null
我累了在客户端调用这样的函数:
echo $client->sayHello('test');
我收到错误:
Fatal error: Uncaught SoapFault exception: [Client] looks like we got no XML document in /Users/breeze.kay/Sites/ad-test/soap.php:15
哪里错了?我不知道。:(代码看起来没问题。为什么没有打印?
答案 0 :(得分:0)
好的,我试过了。
问题是请求网址必须附加?wsdl,如下所示:http://localhost/wbs/api.php?wsdl
但我对我的网站使用url-rewrite。重写规则打破了原始的url结构。
顺便说一句,有人知道在哪里谈论肥皂要求的网址规则?我读了一些手册但没找到它。
答案 1 :(得分:0)
{4}}错误通常发生在php打开之前或关闭标记之前有空格,请尝试清除并测试。