Article View: pl.comp.lang.delphi
Article #346935WSDL dla kuriera DPD - co robię źle?
From: MKi
Date: Mon, 18 Mar 2019 11:56
Date: Mon, 18 Mar 2019 11:56
136 lines
4214 bytes
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-mailShow 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