SOAP -> GLS hjælp

118 views
Skip to first unread message

Leif Neland

unread,
Oct 5, 2011, 9:23:54 AM10/5/11
to
Er der nogen, der har lavet php til at snakke med GLS (Pakkeshop) via SOAP?

Jeg kan ikke lige få hul på det.

Hvad jeg har er:

require_once "SOAP/Client.php";
$sc = new
SOAP_Client("http://www.gls-group.eu/276-I-PORTAL-WEBSERVICE/services/Tracking/wsdl/Tracking.wsdl",array("trace"
=> 1, "exception" => 1));
$parameter = array(LoginName=>"xxx",Password=>"yyy");
$result = $sc->call ("GetTuList", &$parameter);

print_r($result);

Men jeg får bare fejlkoden 999
Det skulle give en liste over pakker.
Skriver jeg andet end "GetTuList", får jeg en fin meddelelse om at den
operation ikke findes, så _noget_ har jeg da fat i.

Leif




Jonathan Stein

unread,
Oct 5, 2011, 4:58:00 PM10/5/11
to
Den 05-10-2011 15:23, Leif Neland skrev:

> $parameter = array(LoginName=>"xxx",Password=>"yyy");

Parametren ser ud til at være en sequence, der minimum skal indeholde
"Credentials" med felterne "UserName" og "Password".

Prøv med:
$parameter = array('Credentials' => array('UserName' => 'xxx',
'Password' => 'yyy'));

(måske skal det være et stdObject i stedet for et array - PHP SOAP har
det lidt sjovt med paramter-typen).

M.v.h.

Jonathan

Stig Johansen

unread,
Oct 6, 2011, 4:09:33 AM10/6/11
to
Leif Neland wrote:

> Er der nogen, der har lavet php til at snakke med GLS (Pakkeshop) via
> SOAP?
>
> Jeg kan ikke lige få hul på det.

Jeg kender ikke så meget til PHP, men 'lidt' til SOAP;)

Indledningsvis bemærker jeg at du starter med at kalde wsdl'et.

wsdl'et er sådan set en slags xmlschema, og 'vi' plejer ikke at bruge det,
da det er dobbeltkonfekt (flere serveropslag/request).

Lidt afhængigg af hvordan wsdl'et er lavet, er det ikke nogen naturlov at
wsdl'et rent faktisk afspejler den faktiske implementering.

'vi' plejer at bruge proxytrace til den slags (fejlfinding), og det er netop
skrevet til dette formål.

Alternativt må du have fat i noget wireshark og tjekke/sammenligne mod en
klient, der virker.

--
Med venlig hilsen
Stig Johansen

Jonathan Stein

unread,
Oct 6, 2011, 12:03:29 PM10/6/11
to
Den 06-10-2011 10:09, Stig Johansen skrev:

> Lidt afhængigg af hvordan wsdl'et er lavet, er det ikke nogen naturlov at
> wsdl'et rent faktisk afspejler den faktiske implementering.

Så fortjener man til gengæld også slag med en våd søndagsavis, hvis man
tilbyder en WSDL, der ikke svarer til ens service!

PHP kan cache WSDL'en, så overheadet ved at initialisere med en WSDL er
normalt minimalt.

M.v.h.

Jonathan

Stig Johansen

unread,
Oct 10, 2011, 4:29:39 AM10/10/11
to
Jonathan Stein wrote:

> S� fortjener man til geng�ld ogs� slag med en v�d s�ndagsavis, hvis man


> tilbyder en WSDL, der ikke svarer til ens service!

Ja, men det hedder nu slag over den dertil indrettede med en v�d
s�ndags_berlinger_ ;)

Jeg holder ikke avis, men 'f�r i tiden' var det en alvorlig stor 'sag'.

> PHP kan cache WSDL'en, s� overheadet ved at initialisere med en WSDL er
> normalt minimalt.

I min verden bruger vi WSDL'et til at bygge en statisk (compiled native)
klient.

Jeg kan ikke se caching l�ser noget, for ved at bruge wsdl'et (alene),
bliver man n�dt til at lave opslag p� serveren for at finde endpointet.

Hvordan opdager du �ndring af endpointet uden at l�se wsdl'et hver gang?

Jonathan Stein

unread,
Oct 10, 2011, 10:08:56 AM10/10/11
to
Den 10-10-2011 10:29, Stig Johansen skrev:

>> S� fortjener man til geng�ld ogs� slag med en v�d s�ndagsavis, hvis man
>> tilbyder en WSDL, der ikke svarer til ens service!
>
> Ja, men det hedder nu slag over den dertil indrettede med en v�d
> s�ndags_berlinger_ ;)

Konkurrenterne har efterh�nden ogs� ret omfangsrige s�ndagsaviser, s�
jeg ville ikke favorisere et enkelt bladhus. - Men den gratis
"S�ndagsavisen" er selvf�lgelig kun til f�rstegangsforseelser!

> I min verden bruger vi WSDL'et til at bygge en statisk (compiled native)
> klient.

S� m� PHP-gruppen ogs� v�re en m�rkelig parallel-verden. ;-)

Jeg har ikke set, om PHP-klienten cacher det rene WSDL-dokument eller en
fortolket udgave, men overhead er stadig lavt i forhold til selve
SOAP-kaldet.

> Hvordan opdager du �ndring af endpointet uden at l�se wsdl'et hver gang?

PHP opdager kun �ndringer, n�r cachen refreshes. Det svarer vel til at
rekompilere klienten i din verden?

M.v.h.

Jonathan

Stig Johansen

unread,
Oct 11, 2011, 1:40:40 AM10/11/11
to
Jonathan Stein wrote:

> S� m� PHP-gruppen ogs� v�re en m�rkelig parallel-verden. ;-)

Ja - men alligevel b�r m� man f�lge lidt med.

Jahh.. m�rkelig..?
Nej egentlig ikke.
Jeg har 'rodet' med program-program kommunikation (eller client/server om du
vil) siden jeg blev 'opl�rt' i '80.

Funktionerne er de samme, blot har farven f�et en anden lyd.

'Min verden' er store forretningsstrategiske systemer hvor performance
spiller en meget stor rolle.

Derfor er der ikke 'plads' til script/bytecode 'ting'.

> Jeg har ikke set, om PHP-klienten cacher det rene WSDL-dokument eller en
> fortolket udgave, men overhead er stadig lavt i forhold til selve
> SOAP-kaldet.

Jeg snakker om behovet for at kalde serveren *2* gange pr. transaktion.

> PHP opdager kun �ndringer, n�r cachen refreshes. Det svarer vel til at
> rekompilere klienten i din verden?

Nej for endpointet er en parameter.

Men lad os undlade at diskutere implementeringer, for jeg har v�ret med til
'interop' for en � snes �r siden, og er lidt tr�t af 'en vis herre'.

Mit indl�g til Leif var blot en metode til at fejls�ge.

Leif Neland

unread,
Oct 11, 2011, 4:54:33 AM10/11/11
to

"Stig Johansen" <wop...@gmail.com> skrev i en meddelelse
news:4e8d623e$0$291$1472...@news.sunsite.dk...

> Leif Neland wrote:
>
>> Er der nogen, der har lavet php til at snakke med GLS (Pakkeshop) via
>> SOAP?
>>
>> Jeg kan ikke lige f� hul p� det.
>
> Jeg kender ikke s� meget til PHP, men 'lidt' til SOAP;)
>
> Indledningsvis bem�rker jeg at du starter med at kalde wsdl'et.
>
> wsdl'et er s�dan set en slags xmlschema, og 'vi' plejer ikke at bruge det,

> da det er dobbeltkonfekt (flere serveropslag/request).


S� groft set, s� skal jeg POST'e noget tekst, der tilf�ldigvis er XML, jeg
f�r noget tekst retur, jeg parser med en regexp, og det er s� det?

Leif


Stig Johansen

unread,
Oct 11, 2011, 5:05:24 AM10/11/11
to
Leif Neland wrote:

> Så groft set, så skal jeg POST'e noget tekst, der tilfældigvis er XML, jeg
> får noget tekst retur, jeg parser med en regexp, og det er så det?

SOAP *er* XML, der POST'es[1], og der gives et retursvar, med eller uden
fejl.
Husk dog at tjekke content hvis du får en 500 Error, da selve
fejlbeskrivelsen ligger i responsen.

[1] Hvis SOAP/HTTP, da SOAP kan bæres over forskellige protokoller, men
typisk associeret med HTTP.

Stig Johansen

unread,
Oct 11, 2011, 5:06:46 AM10/11/11
to
Stig Johansen wrote:

> Leif Neland wrote:
>
>> Så groft set, så skal jeg POST'e noget tekst, der tilfældigvis er XML,
>> jeg får noget tekst retur, jeg parser med en regexp, og det er så det?

Hov, så lige..
Responsen *er* XML, så det vil være naturligt at parse det med en
XML-parser.

soe...@gmail.com

unread,
Apr 25, 2012, 2:56:22 PM4/25/12
to
Har du fundet en løsning ?

Hvis ikke, så var det her løsningen for mig ..

parameters =
array(
'Credentials' => array('UserName' => 'xxx','Password' => 'yyy'),
'DateFrom'=>array('Year'=>'2012','Month'=>'4','Day'=>'24','Hour'=>'1','Minut'=>'1'),
'DateTo'=>array('Year'=>'2012','Month'=>'4','Day'=>'25','Hour'=>'1','Minut'=>'1')
);

try
{
$tu = $this->client->GetTuList($parameters);
return $tu->TUList;
}
catch(Exception $e)
{
$this->error = __METHOD__.': '.$e->getMessage();
return false;
}

lei...@gmail.com

unread,
Dec 6, 2016, 3:36:37 AM12/6/16
to
Den onsdag den 25. april 2012 kl. 20.56.22 UTC+2 skrev soe...@gmail.com:
> On Wednesday, October 5, 2011 3:23:54 PM UTC+2, Leif Neland wrote:
> > Er der nogen, der har lavet php til at snakke med GLS (Pakkeshop) via Soap

Jeg prøvede lige dette igen, og nu har jeg fundet dette på github:

https://github.com/dbojdo/gls-tracking

Leif
Reply all
Reply to author
Forward
0 new messages