2016-04-15 15 views
1

Ich bin auf eine Situation gestoßen, in der ich einen SOAP-Webservice (auf einem anderen Server) manuell von einem der Produktionsserver aufrufen und prüfen muss, ob alles in Ordnung ist.Aufrufen eines SOAP-Webdienstes mit Telnet-Befehl

Da dies alle Live-Server sind, gibt es keine Netzwerk-Tools wie wget, curl und nc sind verfügbar. Ich habe versucht nach einer Lösung zu suchen, ist aber kein Glück.

Als Workaround kann ich einen Java-Client-Socket schreiben und den Dienst aufrufen, aber auch das ist hier nicht erlaubt.

telnet ist da, aber ich bin mir nicht sicher, wie es für meinen Fall funktioniert.

Gibt es eine andere Möglichkeit, Remote-Dienste ohne diese Tools aufzurufen?

Antwort

4

Nach einigen Stunden endlich versuchen, konnte ich SOAP-Dienst mit telnet wie aufzurufen unter

zunächst wie unten eine TCP-Verbindung zum Remote-Server öffnen.

$> telnet hostname portname 

Sobald sie verbunden ist, eine Anforderung als eine der folgenden Methoden umrahmen und auf dem Bildschirm einzufügen und enter key zweimal drücken.

Es gibt zwei Möglichkeiten, wie wir einen Dienst aufrufen können.

Methode 1: statt Endpunkt Pfad in POST Header zu erwähnen, wir es in SOAPAction Header geben kann.

POST/HTTP/1.1 
Accept-Encoding: gzip,deflate 
Content-Type: text/xml;charset=UTF-8 
SOAPAction: "<endpoint URL from WSDL>" 
Content-Length: <number of bytes you are sending in body section> 
Host: <hostname>:<port> 
Proxy-Connection: Keep-Alive 
User-Agent: Apache-HttpClient/4.1.1 (java 1.5) 

<SOAP Request payload> 

Methode 2: Erwähnensendpunktpfad in dem Anforderungsheader selbst, so können wir leeren Wert in „“ Soapaction-Kopf geben (es bedeutet Anforderungspfad selbst ist der Endpunkt Pfad).

POST /soap/server HTTP/1.1 
Accept-Encoding: gzip,deflate 
Content-Type: text/xml;charset=UTF-8 
SOAPAction: "" 
Content-Length: <payload size> 
Host: hostname:port 
Proxy-Connection: Keep-Alive 
User-Agent: Apache-HttpClient/4.1.1 (java 1.5) 

<SOAP Request payload> 

Antwort: Sobald der Anruf erfolgreich aufgerufen wird, wird die Antwort, wie unten

HTTP/1.1 200 OK 
Content-Type: text/xml;charset=UTF-8 
Content-Length: <response payload size> 

<SOAP response payload> 

auf SOAPHeader- check this link

Hinweis Weitere Informationen gedruckt werden: Stellen Sie sicher, dass die Länge Die Anfrage-Payload ist korrekt, bevor sie gesendet wird.

+0

Danke für die Rückkehr mit einer Lösung! Du hast das Internet heute etwas schlauer gemacht :) –