Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > de.comp.lang.php > #4021
| From | Thomas 'PointedEars' Lahn <PointedEars@web.de> |
|---|---|
| Newsgroups | de.comp.lang.php |
| Subject | Re: SoapHeader -> Ansicht als XML |
| Date | 2017-01-20 18:12 +0100 |
| Organization | PointedEars Software (PES) |
| Message-ID | <2297003.7s5MMGUR32@PointedEars.de> (permalink) |
| References | <o5t6gv$q2o$1@news.albasani.net> |
Ralph Stahl wrote:
> Ich bin am Einarbeiten in die Entwicklung eines SOAP-Clients, bei dem
> die Headerstruktur für SoapClient() vom Auftraggeber natürlich
> vorgegeben ist.
Ich dachte, SOAP sei seit über einem Jahrzehnt tot. Heutzutage benutzt
Mann[tm] doch für Webservices eher REST mit XML, JSON, CSON oder YAML als
Datenformat.
> Ich beziehe mich zunächst mal auf die User-Kommentare in
>
> http://php.net/manual/en/class.soapheader.php
>
> Wie kann ich denn das erzeugt $header-Objekt (Kommentar 7, 9)
Das sind _nicht_ die Nummern der Kommentare, sondern ihre *Bewertungen*,
die sich jederzeit ändern können :)
Um einen Kommentar im Handbuch zu referenzieren, am besten dessen URI
verwenden (der Name/die maskierte E-Mail-Adresse des Autors ist – leider
nicht benutzerfreundlich gekennzeichnet – verlinkt):
<http://php.net/manual/en/class.soapheader.php#117594>
<http://php.net/manual/en/class.soapheader.php#107889>
> als XML darstellen, um es zu kontrollieren und mit den Vorgaben zu
> vergleichen? Stelle ich es mit print_r() dar, sehe ich es wie ein Array,
> also ohne die Namespaces und so. Helft mir doch bitte mal auf die Sprünge!
Da SoapHeader-Instanzen keine passende Methode haben – das kann man
unabhängig von der Dokumentation mit
var_dump((new ReflectionClass($header))->getMethods());
herausfinden – und wenn auch SoapClient-Instanzen keine Möglichkeit bieten,
bleibt Dir wohl nur, einen SOAP-Request abzusetzen und zu gucken, was beim
Server ankommt.
Ich mache sowas bei Quickhacks gern mit der Netzkatze™ (netcat) nc(1).
Also zum Beispiel im einen screen(1)-Fenster
nc -lp 1337
um lokal auf Port *1337* (natürlich!) zu lauschen, und im anderen
php -r "
\$client = new SoapClient(null, [
'location' => 'http://localhost:1337/',
'uri' => 'http://localhost/',
'trace' => TRUE
]);
\$auth = array(
'UserName' => 'USERNAME',
'Password' => 'PASSWORD',
'SystemId' => array('_' => 'DATA', 'Param' => 'PARAM'),
);
\$header = new SoapHeader('NAMESPACE', 'Auth', \$auth, false);
var_dump(\$header);
var_dump((new ReflectionClass(\$header))->getMethods());
\$client->__setSoapHeaders(\$header);
\$client->soapCall('baz', []);
var_dump(\$client->getLastRequestHeaders());
"
ausführen [“\$x”: im Beispiel wurden “'” als String-Begrenzer verwendet, und
ich wollte die erst nicht alle ändern müssen; “null”: ich hatte gerade kein
WSDL-Dokument zur Hand].
Die Ausgabe könntest Du dann in ein XML-Dokument speichern und dieses zum
Beispiel mit einem XML-fähigen Web-Browser anzeigen, um sie einfacher lesen
zu können (BTDT mit Chromium 53.0.2785.143 unter Debian/Devuan GNU/Linux
amd64).
Dann gibt es noch Netzwerkmonitoring-Tools wie Wireshark und ein
äquivalentes Windoze-only-Programm, dessen Name mir meist (so auch jetzt)
nicht einfällt, weil ich es viel zu selten benutze.
> BTW: Trotz trace = 1 in SoapClient() liefert mir getLastRequestHeaders()
> gar nichts. Muss da selbst bei der ersten Kontaktaufnahme mit dem Server
> schon was kommen?
Vermutlich erst, wenn der Server geantwortet hat. Bei mir liefert
SoapClient::getLastRequestHeaders() *so* auch nichts.
> Ich wäre sehr dankbar für helfende Hinweise, selbst den, dass ich
> einfach nur lesen muss :-).
RTFM ;-)
Gern geschehen.
--
PointedEars
Zend Certified PHP Engineer <http://www.zend.com/en/yellow-pages/ZEND024953>
<https://github.com/PointedEars> | <http://PointedEars.de/wsvn>
Twitter: @PointedEars2 | Please do not cc me./Bitte keine Kopien per E-Mail.
Back to de.comp.lang.php | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread
SoapHeader -> Ansicht als XML Ralph Stahl <post@rstahl.de> - 2017-01-20 15:23 +0100
Re: SoapHeader -> Ansicht als XML Thomas 'PointedEars' Lahn <PointedEars@web.de> - 2017-01-20 18:12 +0100
Re: SoapHeader -> Ansicht als XML Thomas 'PointedEars' Lahn <PointedEars@web.de> - 2017-01-20 18:26 +0100
Re: SoapHeader -> Ansicht als XML Ralph Stahl <post@rstahl.de> - 2017-01-21 12:55 +0100
Re: SoapHeader -> Ansicht als XML Ralph Stahl <post@rstahl.de> - 2017-01-21 12:53 +0100
Re: SoapHeader -> Ansicht als XML Thomas 'PointedEars' Lahn <PointedEars@web.de> - 2017-01-21 13:53 +0100
Re: SoapHeader -> Ansicht als XML Ralph Stahl <post@rstahl.de> - 2017-01-21 18:32 +0100
Re: SoapHeader -> Ansicht als XML Thomas 'PointedEars' Lahn <PointedEars@web.de> - 2017-01-21 18:40 +0100
Re: SoapHeader -> Ansicht als XML Stefan+Usenet@Froehlich.Priv.at (Stefan Froehlich) - 2017-01-21 14:57 +0000
Re: SoapHeader -> Ansicht als XML Ralph Stahl <post@rstahl.de> - 2017-01-21 18:30 +0100
Re: SoapHeader -> Ansicht als XML Stefan+Usenet@Froehlich.Priv.at (Stefan Froehlich) - 2017-01-21 17:44 +0000
Re: SoapHeader -> Ansicht als XML k@rl.pflaesterer.de (Karl Pflästerer) - 2017-01-23 08:58 +0100
Re: SoapHeader -> Ansicht als XML Ralph Stahl <post@rstahl.de> - 2017-01-23 17:31 +0100
Re: SoapHeader -> Ansicht als XML Thomas 'PointedEars' Lahn <PointedEars@web.de> - 2017-01-23 20:22 +0100
Re: SoapHeader -> Ansicht als XML Ralph Stahl <post@rstahl.de> - 2017-01-26 19:44 +0100
Re: SoapHeader -> Ansicht als XML Thomas 'PointedEars' Lahn <PointedEars@web.de> - 2017-01-26 23:46 +0100
Re: SoapHeader -> Ansicht als XML Ralph Stahl <post@rstahl.de> - 2017-01-27 10:21 +0100
Re: SoapHeader -> Ansicht als XML Thomas 'PointedEars' Lahn <PointedEars@web.de> - 2017-01-27 12:21 +0100
Re: SoapHeader -> Ansicht als XML Ralph Stahl <post@rstahl.de> - 2017-04-06 12:24 +0200
csiph-web