php - SOAP 消息的最大大小是如何确定的?

标签 php soap wsdl nusoap

我在 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/

相关文章:

javascript - 生成列表中的 $_GET 在显示页面上未定义

c# - 如何在 WPF 应用程序中的 SOAP 客户端的 "Cookie" header 响应的新请求中设置 "Set-Cookie" header

java - 如何让两个不同的端点具有不同的命名空间和相同的 JAXB 类?

php - 使用基本身份验证将 WSDL 转换为 PHP

java - wsimport maven 任务不起作用

javascript - 用于注册新用户的 Jquery 警报框

javascript - php Javascript 变量引用错误

php - 使用下拉选择过滤信息

java - 响应 SOAP 请求时的 UTF-8 问题

java - 从 Web 服务列表中隐藏 Restful 服务(Apache CXF)