我在 PHP 5.2.6 上使用 NuSOAP,我发现最大消息大小仅为 1000 字节(这使得做任何有意义的事情变得困难)。这是在端点的 WSDL 中设置的还是我可以在 NuSOAP 中配置的?
最佳答案
关于“1000 字节限制”的 FUD...我查看了 nusoap_client 源代码,发现该限制仅对调试输出有效。
这意味着所有数据都会被处理并传递给网络服务(无论其大小),但只有前 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 字节限制”。
关于php - SOAP 消息的最大大小是如何确定的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/231358/