|
| 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
| |
|
|