方法中的参数太多...(从Delphi XE中的WSDL连接到WebService)

1 delphi wsdl web-services queryinterface delphi-xe

有一个外部Web服务,分别要求客户端给他.基于shell Embarcadero的WSDL标准RAD Studio XE(Delphi XE)创建了一个通常运行良好的单元,但在这种情况下有一个警告 - 其中一个函数转移到100多个参数.当您在运行时创建用于调用Web服务的对象时,会收到错误"方法'方法名称中的参数太多'".如果参数的数量减少到61,那么一切都开始工作 - 调用Web服务运行正常并返回响应.为什么会这样?转向互联网,但结果为零.

Rob*_*edy 7

这正是因为错误消息所说的原因.参数太多了.SOAP包装器的代码生成器(在Rio.pas中)只允许将252个字节压入堆栈以调用包装方法,该方法转换为63个指针大小的参数.(较大的参数可能需要更多的字节,从而减少了允许的参数总数.)