Article View: pl.comp.lang.delphi
Article #346940Re: WSDL dla kuriera DPD - co robię źle?
From: Piotr Brzeziński
Date: Wed, 20 Mar 2019 05:47
Date: Wed, 20 Mar 2019 05:47
144 lines
5204 bytes
5204 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
Cześć
A może to problem wersji Delphi, którego używasz?
Zrobiłem to co napisałeś w XE5 i nie było żadnego problemu a x.status dostał wartość 'OK'.
Piotr
Technical Details
Message-ID:
<87a77e06-53bb-4a90-a21e-957504cf97c8@googlegroups.com>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed.pionier.net.pl!feeder.erje.net!1.eu.feeder.erje.net!weretis.net!feeder7.news.weretis.net!proxad.net!feeder1-2.proxad.net!209.85.166.215.MISMATCH!78no52837itl.0!news-out.google.com!l81ni111itl.0!nntp.google.com!w126no52281ita.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:334a:: with SMTP id k71mr3680778itk.14.1553060870143; Tue, 19 Mar 2019 22:47:50 -0700 (PDT) X-Received: by 2002:aca:b5c1:: with SMTP id e184mr4001164oif.75.1553060869890; Tue, 19 Mar 2019 22:47:49 -0700 (PDT) Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed.pionier.net.pl!feeder.erje.net!1.eu.feeder.erje.net!weretis.net!feeder7.news.weretis.net!proxad.net!feeder1-2.proxad.net!209.85.166.215.MISMATCH!78no52837itl.0!news-out.google.com!l81ni111itl.0!nntp.google.com!w126no52281ita.0!postnews.google.com!glegroupsg2000goo.googlegroups.com!not-for-mail Newsgroups: pl.comp.lang.delphi Date: Tue, 19 Mar 2019 22:47:49 -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=91.197.155.10; posting-account=FHcG8QoAAAC83MvA2uzNv2W2VnYms6B9 NNTP-Posting-Host: 91.197.155.10 References: <5c8f875c$0$502$65785112@news.neostrada.pl> User-Agent: G2/1.0 MIME-Version: 1.0 Message-ID: <87a77e06-53bb-4a90-a21e-957504cf97c8@googlegroups.com> Subject: Re: WSDL dla kuriera DPD - co robię źle? From: Piotr Brzeziński <p.brzezinski.71@gmail.com> Injection-Date: Wed, 20 Mar 2019 05:47:50 +0000 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit