我正在尝试制作一个能够将某些值插入到Microsoft sql数据库中的soap服务,服务器是php,客户端从powershell调用服务器。
所以我有一个使用NuSOAP和许多方法的Soap服务器设置,这些方法是这样制作的:
$server->register('InsertInDb',
array('query' => 'xsd:string'), // parameter
array('return' => 'xsd:string'), // output
'urn:server', // namespace
'urn:server#helloServer', // soapaction
'rpc', // style
'encoded', // use
'the query you want to execute');
现在我可以使用Powershell客户端中的以下代码调用此方法:
$url = ".../NuSoapServerTest.php?wsdl"
$proxy = New-WebServiceProxy $url
$proxy | gm -memberType Method
$proxy.InsertInDb('Insert into value etc...')
但是我希望能够执行这样的方法
$url = ".../NuSoapServerTest.php?wsdl"
$soap = [xml]@'
<?xml version="1.0" encoding="utf8"?>
<soap:Envelope xmlns:xsi=".../NuSoapServerTest.php?wsdl">
<soap:Body>
<inventory>
<machine>
<systemname>example value</systemname>
</machine>
<hardware>
<machine_type>example value</machine_type>
</hardware>
</inventory>
</soap:Body>
</soap:Envelope>
'@
$ret = Execute-SOAPRequest $soap $url;
,每个<'tag'>表示数据库中的一层。 我一直在网上浏览很多示例,但是到目前为止,我还没有找到任何示例可以使我清楚地知道如何设置服务器或客户端以演示的方式执行我的方法。
也许我误解了SOAP的原理以及它应该如何工作,或者我只是愚蠢,但任何帮助都将不胜感激
编辑:可能值得注意的是,这是我第一次使用Powershell。