gpt4 book ai didi

web-services - 使用Delphi调用UPS包裹追踪Web服务吗?

转载 作者:行者123 更新时间:2023-12-03 18:52:02 25 4
gpt4 key购买 nike

Delphi 2009导入了UPS WSDL,没有任何错误,我设法用我的帐户信息和示例包裹ID调用了Web服务。服务器的响应为:

<detail>
<err:Errors xmlns:err="http://www.ups.com/XMLSchema/XOLTWS/Error/v1.1">
<err:ErrorDetail>
<err:Severity>Hard</err:Severity>
<err:PrimaryErrorCode>
<err:Code>9150002</err:Code>
<err:Description>Invalid or missing inquiry number - TrackingNumber, ShipmentIdentificationNumber, or ReferenceNumber</err:Description>
</err:PrimaryErrorCode>
</err:ErrorDetail>
</err:Errors>
</detail>


是否有人已经在Delphi客户端上成功使用了UPS Parcel Tracking Web服务,并且知道出了什么问题?

这是客户端代码:

var
Service: TrackPortType;
MyRequest: TrackRequest;
Security: UPSSecurity;
MyResponse: TrackResponse;
ReqOpt: Array_Of_string;
begin
Service := (HTTPRIO1 as TrackPortType);

Security := UPSSecurity.Create;
Security.UsernameToken := UsernameToken.Create;
Security.UsernameToken.Username := 'username';
Security.UsernameToken.Password := 'password';
Security.ServiceAccessToken := ServiceAccessToken.Create;
Security.ServiceAccessToken.AccessLicenseNumber := 'licensenumber';

MyRequest := TrackRequest.Create;
SetLength(ReqOpt, 1);
ReqOpt[0] := '0';
MyRequest.Request := Request.Create;
MyRequest.Request.RequestOption := ReqOpt;
MyRequest.TrackingOption := '02';
MyRequest.InquiryNumber := '1Z...';

try
(Service as ISoapHeaders).Send(Security);
MyResponse := Service.ProcessTrack(MyRequest, nil);
except
on E:ERemotableException do
begin
Memo1.Lines.Text := FormatXmlData(E.FaultDetail);
end;
end;

最佳答案

Java API for XML Web ServicesJAX-WS)解决。

为了与Delphi集成,我将其代理为Intranet Servlet。然后,Delphi GUI应用程序可以使用简单的HTTP请求来查询跟踪状态。

更新:为了使它在Delphi中正常工作,我进行了第二次尝试,对SOAP XML请求主体进行了硬编码,并使用Indy和XMLDocument代替了Delphi SOAP库。

关于web-services - 使用Delphi调用UPS包裹追踪Web服务吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2182117/

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