代码之家  ›  专栏  ›  技术社区  ›  mjn anonym

用Delphi调用包裹跟踪Web服务?

  •  2
  • mjn anonym  · 技术社区  · 15 年前

    Delphi2009导入了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包裹跟踪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;
    
    1 回复  |  直到 15 年前
        1
  •  0
  •   mjn anonym    14 年前

    Java API for XML Web Services ( JAX-WS )

    为了与Delphi集成,我将其代理为内部网 Servlet . DelphiGUI应用程序随后可以使用一个简单的HTTP请求来查询跟踪状态。

    更新:在第二次尝试让它在Delphi中工作时,我硬编码了SOAP XML请求体,并使用了indy和xmldocument而不是delphi SOAP库。