我在PHP 5.2.6上使用NuSOAP,我发现最大消息大小只有1000个字节(这使得很难做任何有意义的事情).这是在端点的WSDL中设置的还是我可以在NuSOAP中配置的东西?
关于"1000字节限制"的FUD ...我查找了nusoap_client源代码,发现该限制仅对调试输出有效.
这意味着处理所有数据并将其传递给Web服务(无论其大小如何),但调试日志中仅显示前1000个字节(或更准确地说:字符).
这是代码:
$this->debug('SOAP message length=' . strlen($soapmsg) . ' contents (max 1000 bytes)=' . substr($soapmsg, 0, 1000)); // send $return = $this->send($this->getHTTPBody($soapmsg),$soapAction,$this->timeout,$this->response_timeout);
您可以清楚地看到,getHTTPBody()
调用使用整体$soapmsg
,并且只有调试输出限制为前1000个字符.如果你想更改它,只需更改substr()
调用以满足您的需要,或者只需将其替换$soapmsg
(所以一切都显示在调试输出中).
这应该与实际发送的数据的任何实际限制完全无关.当然还有其他因素实际上会限制您可以发送的内容的大小(例如,为PHP脚本设置的RAM限制,HTTP实现的限制或者可用的虚拟内存不足),但是理所当然地认为没有您可以使用NuSOAP发送的数据的"1000字节限制".