Я довольно часто использую REST Apis в Powershell, но теперь я хочу сделать что-то на SOAP API:
Следующий скрипт работает отлично:
$Body = '<?xml version="1.0" encoding="utf-8"?>
<soap12:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap12="http://www.w3.org/2003/05/soap-envelope">
<soap12:Body>
<ModifyObject xmlns="http://www.omninet.de/OtWebSvc/v1">
<Object objectId="123456">
<StringVal name="State">Maintenance</StringVal>
<StringVal name="Comments">Sec Fixes</StringVal>
</Object>
</ModifyObject>
</soap12:Body>
</soap12:Envelope>
'
$headers = @{}
$headers.add("SOAPAction","http://www.omninet.de/OtWebSvc/v1/ModifyObject")
Invoke-WebRequest -Credential $Credential -Uri 'http://myserver/OTWS/v1.asmx' -Method "Post" -Body $Body -ContentType "text/xml" -Headers $headers
Теперь я нашел команду New-WebServiceProxy, и я действительно хотел бы использовать ее, но мне не удалось получить тот же результат, потому что я не понимаю, как указать параметры в методе изменения объекта, как показано в теле SOAP. Я могу создать объект клиента, и я вижу, что метод ModifyObject заполнен, но все, что я пытаюсь вставить в качестве параметров, возвращает ошибки.
Может ли кто-нибудь указать мне правильное направление?
Спасибо вы!