gpt4 book ai didi

Delphi XE2 HTTPRIO 无法检索服务/端口的 URL 端点

转载 作者:行者123 更新时间:2023-12-03 14:54:30 24 4
gpt4 key购买 nike

我正在将 Delphi 2007 程序转换为 Delphi XE2,但遇到以下错误消息:

Unable to retrieve the URL endpoint for service/port "/" from WSDL 'http://.....'

我连接的服务是用 Delphi 2007 编写的。

2007 年它编译并运行没有问题。在具有相同代码的 XE2 上,它会因错误而失败。

我尝试使用新的 WSDL 导入器重新导入界面并设置默认值,但没有什么乐趣。

我还尝试设置端口和服务名称,但错误仍然存​​在。不确定哪些信息有用,但据我所知它正在连接。

这是我正在使用的方法的操作

<operation name="CheckRegistration">
<soap:operation soapAction="urn:ScubaUpdateWSIntf-IScubaUpdateWS#CheckRegistration" style="rpc"/>
<input>
<soap:body use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="urn:ScubaUpdateWSIntf-IScubaUpdateWS"/>
</input>
<output>
<soap:body use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="urn:ScubaUpdateWSIntf-IScubaUpdateWS"/>
</output>
</operation>

这是消息:

<message name="CheckRegistration10Request">
<part name="centreId" type="xs:int"/>
<part name="centreName" type="xs:string"/>
<part name="checkActiveOnly" type="xs:boolean"/>
</message>
<message name="CheckRegistration10Response">
<part name="return" type="xs:boolean"/>
</message>

除了导入 WSDL、抛出 HTTPRIO 并调用该方法

(HTTPRIO1 as IScubaUpdateWS).CheckRegistration(strtoint(tcentre),tcentreName,true);

我认为我没有做任何其他事情,正如我所说,相同的代码可以在 Delphi 2007 上运行。

最佳答案

已解决。嗯,有点像!看起来 Delphi XE2 正在寻找 2 项服务,而 Delphi 2007 正在寻找一项服务。我正在使用的程序从注册表中读取 WSDL 位置并进行设置。在 Delphi 2007 上,这很好,因为它采用唯一的服务并创建选定的端口/服务。在 Delphi XE2 上,重置 WSDL 位置会导致端口和服务被清除。感谢@JohnEasley 为我指明了正确的方向。为了解决这个问题,我现在必须在更改 WSDL 位置后使用以下代码。不确定它是否适用于每个人,因为我假设第一个条目是必需的

servicenames:=Tdomstrings.Create;
portnames:=Tdomstrings.Create;
HTTPRIO1.WSDLItems.GetServices(servicenames);
if servicenames.count>0 then
begin
HTTPRIO1.Service:=servicenames[0];
HTTPRIO1.WSDLItems.GetPortsForService(servicenames[0],portnames);
if portnames.count>0 then
HTTPRIO1.Port:=portnames[0];
end;
servicenames.clear;
servicenames.Free;
portnames.clear;
portnames.Free;

谢谢大家

关于Delphi XE2 HTTPRIO 无法检索服务/端口的 URL 端点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8974390/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com