Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > de.comp.lang.php > #4021

Re: SoapHeader -> Ansicht als XML

Path csiph.com!feeder.erje.net!1.eu.feeder.erje.net!weretis.net!feeder4.news.weretis.net!feeder5.news.weretis.net!news.solani.org!.POSTED!not-for-mail
From Thomas 'PointedEars' Lahn <PointedEars@web.de>
Newsgroups de.comp.lang.php
Subject Re: SoapHeader -> Ansicht als XML
Date Fri, 20 Jan 2017 18:12:08 +0100
Organization PointedEars Software (PES)
Lines 97
Message-ID <2297003.7s5MMGUR32@PointedEars.de> (permalink)
References <o5t6gv$q2o$1@news.albasani.net>
Reply-To Thomas 'PointedEars' Lahn <php@PointedEars.de>
Mime-Version 1.0
Content-Type text/plain; charset="UTF-8"
Content-Transfer-Encoding 8Bit
X-Trace solani.org 1484932329 31675 eJwFwYkRwCAMA7CVIPFDx+Gg3n8EJLamjiEKDIP6c3iX77APUsiuxTUoNRCWWl/MmW1nPhIOEF4= (20 Jan 2017 17:12:09 GMT)
X-Complaints-To abuse@news.solani.org
NNTP-Posting-Date Fri, 20 Jan 2017 17:12:09 +0000 (UTC)
User-Agent KNode/4.14.2
X-Face %i>XG-yXR'\"2P/C_aO%~;2o~?g0pPKmbOw^=NT`tprDEf++D.m7"}HW6.#=U:?2GGctkL,f89@H46O$ASoW&?s}.k+&.<b';Md8`dH6iqhT)6C^.Px|[=M@7=Ik[_w<%n1Up"LPQNu2m8|L!/3iby{-]A+#YE}Kl{Cw$\U!kD%K}\2jz"QQP6Uqr],./"?;=4v
Face iVBORw0KGgoAAAANSUhEUgAAADAAAAAwBAMAAAClLOS0AAAAGFBMVEXTxa4RFk5dUWANED8PFEfy7+MGBiW+n3ZNF/QuAAACaElEQVQ4jVXUwVOcMBQG8Dc7Rc4PUntdWV2uxjDpGaGeozOp1woar4jd5t/v9wLstMwsA/ntlxdCAgUc1hjTc9/JCZfGoo3wG3HdmdAWrIJRHe7GM/TmpY5VFefuVcAkkPbLIaN8rmPmjloyZxgyR3GuJ4K0AGtJ2htz8o7yqikm759fldQXaMpbDzjKAG+8v+AugVTOPO5DOjLvGtUYQwh0CPjnVMyGd+8/GfUB5nLKJDD2aLDh5HYyMDJGDwQIo2ZmZcKbowNmAdB/AzyFhrmF2MHRb0QJJfaAnwGB6orZhoykLzJtGwF/xpYxI1dswomiUj3gTuAIqCn/4C7cULwGNBtwMTk3Y4LfKB5YUaOKBKYtpplm7u0vip8tU1NWWyI/7XdcSuIDoMt6rVHMWT0DbjHPGqDqZVSa6zleLcUTcIKLoMv3ueJluALtAo9B302zPPlrtiVScRdCjXvVh3e3JpYa/jjkuC9N+LrBMlz/eAN4eQijX2EdLo6c5tGGHwLyHFtXk89dDGHwCVhG9T0S/j55AhRZgkMCmUQXJ49TnS1wnQDvw0eAh9ICeMmEFbCnPMFzjAvsWoEWEFdYEx+S0MoUZ1gT1wId8+AF3Bl2OoEu906AUHx5VLw/gXYg/x84loOah/2UYNrgiwSwGO7RfUzVBbx/kgpckumGOi6QirtD6gkLTitbnxNol47S2jVc2vsN5kPqaAHT8uUdAJM4v/DanjYOwmUjWznGfwB7sGtAtor5BgofDuzaRj4kSQAqDakTsKORa3Q3xKi3gE1fhl71KRMqrdZ2AWNNg/YOhQyrVBnb+i+nEg4bsDA+egAAAABJRU5ErkJggg==
Cancel-Lock sha1:nbbjA37m9QmErnCLrNhd/E3X6D8=
X-NNTP-Posting-Host eJwFwQkBwDAIA0BLvIHIGV3xL6F36VCcCiQiN1doO9Ifl0b37Wqq/DITBA+vWJUtMRo3ZR4I7xBa
X-User-ID eJwNycEBwCAIA8CVAAmEcYri/iPY+x5WaOz0QDgubiZ7DmsTl9LFNDKOMopGmM18bkJEpeY6LvJPTRpU2voBJlATuQ==
Xref csiph.com de.comp.lang.php:4021

Show key headers only | View raw


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 | NextPrevious in thread | Next in thread | Find similar | Unroll thread


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