在Delphi 7中调用Web服务和返回错误

时间:2015-05-04 12:07:12

标签: web-services delphi wsdl delphi-7 delphi-xe5

我已经在 Delphi 7 中导入了一个WSDL并在其上调用了一个函数,并会显示一条错误消息:

项目Project1.exe引发异常类ERemotableException,消息'服务器无法处理请求。 --->一个或多个实体的验证失败。请参阅' EntityValidationErrors'物业详情。'。流程停止了。使用步骤或运行继续。

enter image description here

当我调用WebService方法(在Delphi 7中 )时,使用Fiddler软件我收到了消息内容(XML):

<?xml version="1.0"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><NS1:Save xmlns:NS1="http://tempuri.org/"><from xsi:type="xsd:string">1</from><to xsi:type="xsd:string">2</to><body xsi:type="xsd:string">ServiceTest</body></NS1:Save></SOAP-ENV:Body></SOAP-ENV:Envelope>

enter image description here

然后我在 Delphi XE5 中调用相同的方法和Web服务,没有错误和XML内容:

<?xml version="1.0"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><SOAP-ENV:Body><Save xmlns="http://tempuri.org/"><from>1</from><to>2</to><body>ServiceTest</body></Save></SOAP-ENV:Body></SOAP-ENV:Envelope>

SOAP服务器响应: enter image description here

SOAP Web Service在.NET框架中编写并支持SOAP 1.1和1.2

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

我已经使用THTTPRIO.OnBeforeExecute来更改SOAPResponse.Then删除不必要的属性并输入XML源并再次打包并将其分配给SOAPResponse并发送它。

在这种方法中,问题得以解决。