Я пытаюсь написать bash-скрипт для выполнения SOAP-запроса (и получения ответа).что я могу сделать с
result=$(wget ${url} --post-data="${data}" --header='Content-Type: text/xml;charset=UTF-8'--timeout=${timeout} -qO- --delete-after)
или
result=$(curl --silent --header 'Content-Type: text/xml;charset=UTF-8' --data "${data}" "${url}" --connect-timeout "${timeout}")
, где 'data' - полезная нагрузка XML.
Однако сервер, с которого мне нужно выполнить скрипт,не имеет curl или wget и, вероятно, не имеет других расширенных функций.
Так есть ли способ добиться этого без их использования?Связанный с этим вопрос об использовании стека позволяет предположить, что это возможно, хотя их требования немного отличаются.https://unix.stackexchange.com/questions/83926/how-to-download-a-file-using-just-bash-and-nothing-else-no-curl-wget-perl-et
Спасибо
РЕДАКТИРОВАТЬ: После комментария Nic3500 я провел весь день, читая nc / netcat и пытаясь найти нужные мне документы.Но я получил его, чтобы отправить следующее:
POST <remote_URI> HTTP/1.1\r\n
User-Agent: Wget/1.14 (linux-gnu)\r\n
Accept: */*\r\n
Host: <IP Address>\r\n
Connection: Keep-Alive\r\n
Content-Type: text/xml;charset=UTF-8--timeout=10\r\n
Content-Length: <Content Length>\r\n
<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="Core" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
<SOAP-ENV:Body>
<ns1:Dispatch>
<param0 xsi:type="xsd:string">some data</param0>
[more params here]
<param21 xsi:type="xsd:int">1</param21>
</ns1:Dispatch>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
с использованием
echo ${head} | nc <IP Address> 80
Теперь, насколько я могу судить, это точно соответствует тому, что посылает метод wget (который работает, но только неисполняемый файл с сервера, который мне нужен), основанный на получении этого, чтобы сбросить данные, которые он посылает.Как бы то ни было, что-то не так, потому что все, что я получаю, это запрос 400 Bad.