2016-04-15 2 views
1

Я столкнулся с ситуацией, когда я должен вручную вызвать веб-сервис SOAP (развернутый на другом сервере) с одного из рабочих серверов и проверить, все ли в порядке., вызывающий веб-службу SOAP с помощью команды telnet

, поскольку все они являются живыми серверами, нет таких сетевых инструментов, как wget, curl и nc. Я попытался проверить, что решение - это Google, но не повезло.

В качестве обходного пути я могу написать клиентский сокет java и вызвать службу, но даже это не разрешено здесь.

telnet есть, но не уверен, как заставить его работать для моего дела.

Есть ли другой способ вызова удаленных сервисов без этих инструментов?

ответ

4

После попытки несколько часов, наконец, я смог вызвать службу SOAP с telnet ниже

первым открыть соединение TCP с удаленным сервером, как показано ниже.

$> telnet hostname portname 

После того, как он подключен, кадр запроса в качестве одного из указанных ниже способов и вставить на экране и нажмите enter key два раза.

Существует два способа вызова службы.

Метод 1: вместо упоминая путь конечной точки в POST заголовке, мы можем дать его в SOAPAction заголовке.

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> 

Метод 2: упоминая путь конечной точки в самом заголовке запроса, так что мы можем дать пустое значение в «» заголовке SOAPAction (это означает, что запрос путь сам по себе путь конечной точки).

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> 

Ответ: После того, как вызов успешно вызывается, то ответ будет напечатан, как показано ниже

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

<SOAP response payload> 

Для получения дополнительной информации о SOAPHeader check this link

Примечание: Убедитесь, что длина полезная нагрузка запроса правильная перед отправкой.

+0

Благодарим за возвращение с помощью решения! Вы сделали Интернет более умным сегодня :) –