有一个外部的Web服务,分别要求客户端给他。基于WSDL标准的 shell Embarcadero RAD Studio XE( Delphi XE)创建了一个通常工作良好的单元,但在这种情况下有一个警告-在一个函数中转移到100多个参数。当你创建一个对象在运行时调用一个Web服务时,会得到一个错误“Too many parameters in method 'method name'”。如果参数的数量减少到61个,那么一切都开始工作--调用Web服务运行良好并返回响应。为什么会这样?上网转了一圈,结果却为零。
1条答案
按热度按时间bkhjykvo1#
它发生的原因正是错误消息中所说的。参数太多了。SOAP Package 器的代码生成器(在 * Rio.pas * 中)只允许将252个字节压入堆栈以调用 Package 的方法,这将转换为63个指针大小的参数。(较大的参数可能需要更多的字节,从而减少允许的参数总数。)