Invoke WebS on Linux

15 views
Skip to first unread message

Bakos Gyula

unread,
Oct 12, 2015, 2:52:28 AM10/12/15
to magic-...@googlegroups.com

Sziasztok!

 

Valakinek sikerült-e már uniPaaS-ból az Invoke WebS-t működésre bírni nem Windows-os szerver esetén?

 

Kérem, bármilyen tapasztalatotok van, osszátok meg velem!

Köszönöm!

 

 

Üdvözlettel,

Bakos Gyula

SZEGED Software Zrt.

 

 

Tisch Dávid

unread,
Oct 12, 2015, 3:04:44 AM10/12/15
to magic-...@googlegroups.com
Szia Gyula!

Ha nem megy, nem tudod kiváltani sima HTTPGet vagy HTTPPost hívással? Abban - Windows platformon - nagy tapasztalatunk van és eddig még sosem volt vele problémánk.

Üdvözlettel:

Dávid

Bakos Gyula

unread,
Oct 12, 2015, 3:12:52 AM10/12/15
to magic-...@googlegroups.com

Szia!

 

A uniPaaS Help azt írja, hogy helyette a HTTPCall a javasolt, aminek kicsit más a szintaktikája.

Nézegettem is már a HTTPCall-t, de nem sikerült a helpből rájönni, hogy hogyan lehet jól felparaméterezni. Ha egy service csomagban több hívható függvény is van, hogyan lehet átadni neki, hogy melyiket szeretném meghívni? A paramétereket ha jól láttam, valami template alapú txt fálban mint blob-ban kell átküldeni.

 

Nagyon megköszönném, ha tudnál küldeni valami példát, ami alapján elindulhatnák!

 

Üdv: Gyula

--
Azért kapta ezt az üzenetet, mert feliratkozott a Google Csoportok „Magic Support Levelezőlista” csoportjára.
Az erről a csoportról és az ahhoz kapcsolódó e-mailekről való leiratkozáshoz küldjön egy e-amailt a(z) magic-suppor...@googlegroups.com címre.
Ha üzenetet szeretne küldeni ebbe a csoportba, küldjön e-mailt a(z) magic-...@googlegroups.com címre.
A csoportot a(z) http://groups.google.com/group/magic-support címen keresheti fel.
További lehetőségekért látogasson el ide: https://groups.google.com/d/optout.

Tisch Dávid

unread,
Oct 12, 2015, 3:43:52 AM10/12/15
to magic-...@googlegroups.com
Szia Gyula!

A HTTPGet-et úgy használjuk, hogy fölveszünk egy Ansi típusú Blob változót, és ezt update-eljük a HTTPGet függvényhívás értékével. Egy példa HTTPGet hívás úgy néz ki, hogy
"HTTPGet('https://www.example.com/anything?param1=1&param2=2', 'Authorization: Basic '&BlobToBase64(felhasznalonev:jelszo_valtozo), 'Accept: text/xml')"

A HTTPPost-ot ugyanígy használjuk, de van még egy Ansi Blob változónk, a http post body, amit először update-elünk a kérés paramétereivel (pl. "param1=1&param2=2"), majd a másik blob változót (a fentiekhez hasonlóan) update-eljük a HTTPPost hívás eredményével. Ez utóbbi például úgy néz ki, hogy
"UTF8ToAnsi(HTTPPost('https://www.example.com/anything, UTF8FromAnsi(tartalom_blob_valtozo), 'Authorization: Basic '&BlobToBase64(felhasznalonev:jelszo_valtozo), 'Accept: text/xml'))"

A HTTPPost body a használni kívánt content-type függvényében sokkal bonyolultabb is lehet (pl. multipart/form-data esetben mindenféle MIME boundary-vel tagolt, bináris tartalom is lehet benne), ha ilyen kell, abban is tudok segíteni. Meg lehet írni Magic-ben is, de mi csinálunk olyat is, hogy a Magic-ből egy saját PHP kódot hívunk, és abban rakjuk össze a végső hívást, mert ott könnyebb volt megírni.

Remélem, segítettem!
Ha még van kérdésed, keress nyugodtan!

Üdvözlettel:

Dávid

Polgár Ferenc

unread,
Oct 13, 2015, 4:45:20 AM10/13/15
to magic-...@googlegroups.com
Sziasztok!

Az adószám ellenőrzésére az alábbi oldalt használtuk:
http://80.249.172.60/cgi-bin/afaalany/afaalany_lekerdez.php
de most ez megváltozott és cookie-t is akar tenni a browserbe.
Ezt nem tudom hogyan lehet elfogadni (és gondolom, hogy vissza is
kellene küldeni) uniPaaS-ból (1.9p).

Van valakinek tapasztalata ebben?

Előre is köszönöm.

Polgár Ferenc
MNP-Szoftverház Kft
Budapest

Tisch Dávid

unread,
Oct 13, 2015, 5:14:51 AM10/13/15
to magic-...@googlegroups.com
Kedves Ferenc!

Gondolom az a gond, hogy a lekérdezésenként egyedi SSID-t is csatolni
kéne a lekérdezéshez? Ha ez így van, akkor egy HTTPGet kéréssel kérjed
le először az oldalt, olvasd ki belőle az SSID-t, aztán utána tedd össze
a HTTPGet-es lekérdezést és azt küldd el!

Üdvözlettel:

Dávid

Polgár Ferenc

unread,
Oct 13, 2015, 6:10:17 AM10/13/15
to magic-...@googlegroups.com
Szia Dávid!

Valóban ez kellett. De közben kitaláltam, hogy a cookie-t is hogy küldi
a HTTPLastHeader('Set-Cookie') függvénnyel és azt is visszaküldöm.
Köszönöm a segítségedet.

Ferenc

Bakos Gyula

unread,
Oct 21, 2015, 3:32:51 AM10/21/15
to magic-...@googlegroups.com

Sziasztok!

 

Végülis az Invoke WebS Lite mellett maradtunk, ami jól működött (egészen eddig) nemcsak Windows-ról, hanem Linuxról futtatáskor is.

Mivel a webservice szolgáltatói oldal (is) most van fejlesztés alatt, szükségessé vált módosítani az egyik metódus paraméterlistáján.

Ennek eredményeképpen most ott tartunk, hogy az egyik hívandó metódusnak 5 paramétere van, ami a wsdl-t böngészőben megnyitva szépen látszik, valamint SoapUi-ban is (Dávid, köszi a tippet!!) látszanak a paraméterek, sőt működik is a metódus meghívása.

A uniPaaS ennek ellenére nem lát csak 4 paramétert, amikor az Invoke WebS Lite-ot meghívnánk.

De ezt legalább következetesen teszi, mert az Invoke WebS is ugyanezt látja. És mostmár nemcsak Linuxról van ez a problémánk, hanem Windows-on, fejlesztőben is.

 

Van valakinek esetleg ezügyben tapasztalata?

 

Üdv: Gyula

Bakos Gyula

unread,
Oct 22, 2015, 6:06:51 AM10/22/15
to magic-...@googlegroups.com

Sziasztok,

 

Na, végre sikerült elérnem, hogy a HTTPPost-ra visszajött a válasz a web service szolgáltató féltől.

Több problémám is volt, tanulságul leírom, hogy mik voltak a buktatók, hátha valaki hasznát veszi:

-          az első (url) paraméterben nem volt elég a http://servername/xxx.php hanem a wsdl linkjét kellett megadni így: http://servername/xxx.php?wsdl

-          a második (soap envelope) paraméter úgy volt jó, ahogy azt a SoapUI is kiküldte. Viszont, nem szükséges az xpa tutorialban ( https://www.youtube.com/watch?v=HK-x3gJxhfE ) mutatott merge technikával megírni egy blob-ot és azt átadni a HTTPPost-nak, simán meg lehet adni a HTTPPost-nak a soap_envelope-ot string kifejezésként.

-          A kiküldendő header-ek terén (is) elég nagy a kavarás, mert arról nem találtam leírást, hogy milyen header-öket szükséges (és elegendő) kiküldeni a HTTPPost-ban. A help-ben szereplő 'User-Agent "Mozilla/4.0 (compatible; MSIE 5.5; Windows NT 5.0)" nem volt elegendő. Próbáltam a SoapUI által kiküldött összes header-t beletenni a HTTPPost hívásomba, de úgy sem működött. Végül a következő header-ek kiküldésével sikerült működésre bírni a webservice-t:

o   'SOAPAction: "http://servername/webservice_service_name#method_name"',

o   'Connection: Keep-Alive',

o   'User-Agent: Apache-HttpClient/4.1.1 (java 1.5)'

Most ezzel „a tűz el lett oltva”, az MSE support-ja pedig vizsgálja, hogy miért nem működik az Invoke WebS Linux-ról futtatva az alkalmazást, és az Invoke WebS és Invoke WebS Lite miért nem lát minden paramétert, ami a wsdl-ben fel van sorolva.

Bízom benne, hogy mielőbb megtalálják a megoldást!

 

Dávid, köszönöm a segítségedet!

Reply all
Reply to author
Forward
0 new messages