Delphi 解组错误

Delphi 解组错误,delphi,soap,delphi-2010,marshalling,Delphi,Soap,Delphi 2010,Marshalling,每当我尝试对SOAP服务执行请求时,都会出现错误: 解组错误:意外元素(uri:)http://www.domain.com/ws/servicename/,本地:“dummyArg”)。预期的要素是 我正在调用的方法已定义为: function GetTxServer(UseWSDL: Boolean; Addr: string; HTTPRIO: THTTPRIO): TxServer; 我对SOAP没有什么经验,也找不到任何有用的信息。请随时提出任何可能加快查找问题过程的问题 我相信我调

每当我尝试对SOAP服务执行请求时,都会出现错误:

解组错误:意外元素(uri:)http://www.domain.com/ws/servicename/,本地:“dummyArg”)。预期的要素是

我正在调用的方法已定义为:

function GetTxServer(UseWSDL: Boolean; Addr: string; HTTPRIO: THTTPRIO): TxServer;
我对SOAP没有什么经验,也找不到任何有用的信息。请随时提出任何可能加快查找问题过程的问题

我相信我调用函数的方式不是正确的方式

我使用的是Delphi 2010,我调用的方法如下:

Response := GetTxServer.requestIVULoto(cm);
使用SoapUI(免费版本也可以)使用WSDL,并确保您可以正确地向服务器发送请求并获得有意义的响应。然后在SoapUI中创建一个“模拟”服务,作为服务器。将您的Delphi请求发送到mockservice(通常通过将端点设置为或类似设置来完成),以便您可以检查发送的XML。现在,您可以试验并确定问题是否是由于发送错误的请求、服务器返回错误/意外的结果、解释好结果时出现问题等造成的

除此之外,我猜您没有正确分配或填充“cm”。我想那是你的请求对象

还有。。。这里有个大提示。。。。
使用RIO_BeforeExecute事件对此进行调试。此时,SOAPRequest是一个可以检查或转储到文件的字符串。这样,您就可以看到正在发送的内容,而不必使用SoapUI、FIDDLR2、Wireshark等

您所使用的代码与方法的声明不匹配。
GetTxServer
函数接受三个参数,但您给了它零。还有,什么是
requestIVULoto
cm
?我认为他需要的东西大致如下:MyTxServer:=GetTxServer(False,端点url,TheRio);然后他可以调用Response:=MyTxServer.requestIVULoto(cm);我安装了SoapUI,我正在正确填充“cm”。问题似乎是xml,这是wsdl,如果有任何帮助的话:';以下是wdsl,如果它有任何帮助:如果有人可以帮助?cm是事务,requestIVULoto是函数。TxServer=接口(IInvokable)[{FA236F41-8840-15A4-8F74-1E1583384A66}]函数请求IVULOTO(const事务:事务):ivuLotoData;stdcall;函数requestTxInfo(const arg0:txInfoRequest):Txinforessponse;stdcall;结束;