Article View: pl.comp.lang.delphi
Article #346936Re: WSDL dla kuriera DPD - co robię źle?
From: zpksoft
Date: Tue, 19 Mar 2019 08:25
Date: Tue, 19 Mar 2019 08:25
145 lines
4979 bytes
4979 bytes
W dniu poniedziałek, 18 marca 2019 12:56:14 UTC+1 użytkownik MKi napisał:
> 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
A nie powinno być tak?:
x := dpos.findPostalCodeV1(ad) ;
wygląda na to, że masz o jeden parametr za dużo
Paweł
Technical Details
Message-ID:
<76e85a13-69ac-4f0e-8699-59921d7442e1@googlegroups.com>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!fu-berlin.de!78no101530itl.0!news-out.google.com!y88ni121ita.0!nntp.google.com!82no101816itk.0!postnews.google.com!glegroupsg2000goo.googlegroups.com!not-for-mailReferences:
<5c8f875c$0$502$65785112@news.neostrada.pl>Show Full Headers
Complete Article Headers
X-Received: by 2002:a24:6283:: with SMTP id d125mr1774559itc.14.1552983949251; Tue, 19 Mar 2019 01:25:49 -0700 (PDT) X-Received: by 2002:a9d:694a:: with SMTP id p10mr790982oto.84.1552983948862; Tue, 19 Mar 2019 01:25:48 -0700 (PDT) Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!fu-berlin.de!78no101530itl.0!news-out.google.com!y88ni121ita.0!nntp.google.com!82no101816itk.0!postnews.google.com!glegroupsg2000goo.googlegroups.com!not-for-mail Newsgroups: pl.comp.lang.delphi Date: Tue, 19 Mar 2019 01:25:48 -0700 (PDT) In-Reply-To: <5c8f875c$0$502$65785112@news.neostrada.pl> Complaints-To: groups-abuse@google.com Injection-Info: glegroupsg2000goo.googlegroups.com; posting-host=217.99.219.204; posting-account=8ND_mgoAAAD5J9y9fnaTB1Kcu7xKWk7Q NNTP-Posting-Host: 217.99.219.204 References: <5c8f875c$0$502$65785112@news.neostrada.pl> User-Agent: G2/1.0 MIME-Version: 1.0 Message-ID: <76e85a13-69ac-4f0e-8699-59921d7442e1@googlegroups.com> Subject: Re: WSDL dla kuriera DPD - co robię źle? From: zpksoft <zpksoft@op.pl> Injection-Date: Tue, 19 Mar 2019 08:25:49 +0000 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit