Thread SOAP - Aufruf von Funktion mit Übergabe geht nicht (8 answers)
Opened by ArthurDent at 2012-04-09 09:06

rosti
 2015-03-17 19:46
#180183 #180183
User since
2011-03-19
3180 Artikel
BenutzerIn
[Homepage]
user image
Guck Dir die zu sendende XML Datei an, ob die SportID an der Stelle steht, wo sie hinsoll. Vergleichsweise erstelle die zu sendende XML selbst, z.B. mit einer geeigneten Template-Engine und ersetze selbst die Platzhalter so, wie in der Doku beschrieben. Sende die XML-Datei und guck Dir die Response an.

PS: Senden kannst du auch mit IO::Socket, prüfe, ob der Wert für den Content-Length Header eingetragen ist. Setze Connection: Close oder HTTP/1.0. Die Response erhältst Du, indem Du nach dem Schreiben in das Socket ebendieses ausliest, solange da noch Daten kommen.

Gleich mal getestet:
Code (perl): (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
binmode STDOUT;

use strict;
use warnings;
use IO::Socket;

my $data = do{ local $/ = undef, <DATA>};
my $length = length $data;

my $host = "www.openligadb.de";

my $sock = IO::Socket::INET->new("$host:80") or die $@;

print $sock <<EOT;
POST /Webservices/Sportsdata.asmx HTTP/1.0
Host: $host
Content-Type: text/xml; charset=utf-8
Content-Length: $length
SOAPAction: "http://msiggi.de/Sportsdata/Webservices/GetAvailLeagues"

$data
EOT


while( read($sock, my $buffer, 123) ){
    print $buffer;
}


__DATA__
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
  <soap:Body>
    <GetAvailLeagues xmlns="http://msiggi.de/Sportsdata/Webservices" />
  </soap:Body>
</soap:Envelope>


Die Antwort kommt und so dürfte das mit den anderen XML-Templates auch funktionieren.

PS/Edit: Also ich würde das bischen XML zum senden über ein Template erzeugen, die Datei senden mit LWP::UserAgent und zum Parsen der Response einen XML-Parser meiner Wahl einsetzen. Mit SOAP::Lite wird das ne ziemliche Akrobatik.
Last edited: 2015-03-17 22:16:49 +0100 (CET)

View full thread SOAP - Aufruf von Funktion mit Übergabe geht nicht