/ Forside / Teknologi / Udvikling / PHP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
PHP
#NavnPoint
rfh 3959
natmaden 3372
poul_from 3310
funbreak 2700
stone47 2230
Jin2k 1960
Angband 1743
Bjerner 1249
refi 1185
10  Interkril.. 1146
SOAP -> GLS hjælp
Fra : Leif Neland


Dato : 05-10-11 14:24

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 (05-10-2011)
Kommentar
Fra : Jonathan Stein


Dato : 05-10-11 21:58

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 (06-10-2011)
Kommentar
Fra : Stig Johansen


Dato : 06-10-11 09:10

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 (06-10-2011)
Kommentar
Fra : Jonathan Stein


Dato : 06-10-11 17:03

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 (10-10-2011)
Kommentar
Fra : Stig Johansen


Dato : 10-10-11 09:30

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?

--
Med venlig hilsen
Stig Johansen

Jonathan Stein (10-10-2011)
Kommentar
Fra : Jonathan Stein


Dato : 10-10-11 15:09

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 (11-10-2011)
Kommentar
Fra : Stig Johansen


Dato : 11-10-11 06:41

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.

--
Med venlig hilsen
Stig Johansen

Leif Neland (11-10-2011)
Kommentar
Fra : Leif Neland


Dato : 11-10-11 09:55


"Stig Johansen" <wopr.dk@gmail.com> skrev i en meddelelse
news:4e8d623e$0$291$14726298@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 (11-10-2011)
Kommentar
Fra : Stig Johansen


Dato : 11-10-11 10:05

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.

--
Med venlig hilsen
Stig Johansen

Stig Johansen (11-10-2011)
Kommentar
Fra : Stig Johansen


Dato : 11-10-11 10:07

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.

--
Med venlig hilsen
Stig Johansen

Søg
Reklame
Statistik
Spørgsmål : 177414
Tips : 31962
Nyheder : 719565
Indlæg : 6407844
Brugere : 218876

Månedens bedste
Årets bedste
Sidste års bedste