Как выполнить Soap-запрос с помощью curl
Нужно сформировать сам запрос в виде xml, затем - выполнить запрос, указав в заголовках необходимые поля.
curl -u login:password --header "Content-Type: text/xml;charset=UTF-8" --header "SOAPAction:sky:GetServiceLis" --data @request.txt http://host/erp/ws/skynet
Тут:
- -u login:password - это данные для авторизации на сервере, к которому мы обращаемся
- –header “Content-Type: text/xml;charset=UTF-8” - устанавливаем тип содержимого запроса
- –header “SOAPAction:sky:GetServiceLis” - задаем неймспейс sky (URN - Uniform Resource Name) и имя метода GetServiceLis
А в файле request.txt будет что-то такое:
<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:sky="mytest-erp/skynet" xmlns:glob="mytest-erp/Global">
<soap:Header/>
<soap:Body>
<sky:GetServiceLis>
<sky:parameters>
<glob:OnlyChanged>false</glob:OnlyChanged>
<!--Optional:-->
<glob:MaximumObjectsInResult>100</glob:MaximumObjectsInResult>
</sky:parameters>
</sky:GetServiceLis>
</soap:Body>
</soap:Envelope>
Discussion