Как выполнить 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