🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.lang.delphi
Article #346935

WSDL dla kuriera DPD - co robię źle?

#346935
From: MKi
Date: Mon, 18 Mar 2019 11:56
136 lines
4214 bytes
Witajcie,
przyszło mi napisać obsługę webservice klienta DPD.

Niestety pierwsze podejście i od razu problem, którego nie
potrafię przeskoczyć.

Na razie działam w sandboksie, oczywiście.

Utworzyłem w Delphi nowy projekt, zaimportowałem WSDL:
https://dpdservicesdemo.dpd.com.pl/DPDPackageObjServicesService/DPDPackageObjServices?WSDL

Wygenerował się plik DPDPackageObjServices1.pas

Napisałem krótki programik (na formie jest button i HTTPRIO),
na koniec tekstu załączam go w całości. Efektem działania
jest wyjątek przy wywołaniu findPostalCodeV1 z komunikatem
"Auth is null". Według dokumentacji ten komunikat pojawia się,
gdy nie jest w ogóle wypełniona struktura autoryzacji.

Bardzo podobnie wyglądający przykład PHP zamieszczony z dokumentacją
działa bez problemu.

Nie bardzo wiem, gdzie szukać błędu.

----------------------------------------------------

Działający przykład PHP:


<?php

class PostalCodeV1
{
     public $countryCode;
     public $zipCode;
}

class AuthDataV1
{
     public $login;
     public $masterFid;
     public $password;
}

$clientOBJ = new 
SoapClient("https://dpdservicesdemo.dpd.com.pl/DPDPackageObjServicesService/DPDPackageObjServices?WSDL",array('features' 
=> SOAP_SINGLE_ELEMENT_ARRAYS));

$authData = new AuthDataV1();
$authData->login = "test";
$authData->masterFid = "1234";
$authData->password = "thetu4Ee";

echo "Wyszukiwanie kodu pocztowego \n";
$param16 = new stdClass();
$postalCodeV1 = new PostalCodeV1();
$postalCodeV1->countryCode = 'PL';
$postalCodeV1->zipCode = '02274';
$param16->postalCodeV1 = $postalCodeV1;
$param16->authDataV1 = $authData;
$result = $clientOBJ->findPostalCodeV1($param16);
echo "Status operacji wyszukiwanie kodu pocztowego: " . 
$result->return->status . "";
?>

-------------------------------------------------------------------

Mój program:


unit Udpd;

interface

uses
   DPDPackageObjServices1,
   Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, 
Forms,
   Dialogs, InvokeRegistry, Rio, SOAPHTTPClient, StdCtrls;

type
   TForm1 = class(TForm)
     HTTPRIO1: THTTPRIO;
     bTest: TButton;
     procedure FormCreate(Sender: TObject);
     procedure bTestClick(Sender: TObject);
     procedure FormDestroy(Sender: TObject);
   private
     { Private declarations }
     dpos : DPDPackageObjServices ;
   public
     { Public declarations }
   end;

var
   Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.bTestClick(Sender: TObject);
var
   pc : postalCodeV1 ;
   ad : authDataV1 ;
   x : findPostalCodeResponseV1 ;
begin
   pc := postalCodeV1.Create ;
   pc.countryCode := 'PL' ;
   pc.zipCode := '02274' ;
   ad := authDataV1.Create ;
   ad.login := 'test' ;
   ad.masterFid := 1495 ;
   ad.password := 'thetu4Ee' ;
   x := dpos.findPostalCodeV1(pc,ad) ;
   ShowMessage(x.status) ;
   pc.Free ;
   ad.Free ;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
   dpos := GetDPDPackageObjServices(False,'',HTTPRIO1) ;
end;

procedure TForm1.FormDestroy(Sender: TObject);
begin
   if dpos <> nil then
     dpos._Release ;
end;

end.

---------------------------------------------------------
Pozdrowienia,
MKi
Technical Details
Message-ID: <5c8f875c$0$502$65785112@news.neostrada.pl>
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed2.atman.pl!newsfeed.atman.pl!goblin1!goblin.stu.neva.ru!newsfeed.neostrada.pl!unt-exc-02.news.neostrada.pl!unt-spo-b-01.news.neostrada.pl!news.neostrada.pl.POSTED!not-for-mail

Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed2.atman.pl!newsfeed.atman.pl!goblin1!goblin.stu.neva.ru!newsfeed.neostrada.pl!unt-exc-02.news.neostrada.pl!unt-spo-b-01.news.neostrada.pl!news.neostrada.pl.POSTED!not-for-mail
Newsgroups: pl.comp.lang.delphi
X-Mozilla-News-Host: news://news.neostrada.pl:119
From: MKi <emkai@to-nalezy-wywalic.op.pl>
Subject: WSDL dla kuriera DPD - co robię źle?
Date: Mon, 18 Mar 2019 12:56:14 +0100
User-Agent: Mozilla/5.0 (Windows NT 6.1; rv:60.0) Gecko/20100101 Thunderbird/60.5.1
MIME-Version: 1.0
Lines: 138
Message-ID: <5c8f875c$0$502$65785112@news.neostrada.pl>
Organization: Telekomunikacja Polska
NNTP-Posting-Host: 84.10.18.54
X-Trace: 1552910172 unt-rea-a-02.news.neostrada.pl 502 84.10.18.54:51904
X-Complaints-To: abuse@news.neostrada.pl
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit