SOAP的請(qǐng)求在Web Service是無處不在的,像WCF服務(wù)和傳統(tǒng)ASMX asp.net的web Service。如果要測試SOAP服務(wù)是否好用通過web編程來實(shí)現(xiàn)就顯得太過于復(fù)雜了,下面的腳本片段(snippet)將會(huì)輕而易舉的完成通過powershell測試和調(diào)用SOAP服務(wù):
這是一段程序代碼。
復(fù)制代碼 代碼如下:
function Execute-SOAPRequest
(
[Xml] $SOAPRequest,
[String] $URL
)
{
write-host "Sending SOAP Request To Server: $URL"
$soapWebRequest = [System.Net.WebRequest]::Create($URL)
$soapWebRequest.Headers.Add("SOAPAction","`"http://www.facilities.co.za/valid8service/valid8service/Valid8Address`"")
$soapWebRequest.ContentType = "text/xml;charset=`"utf-8`""
$soapWebRequest.Accept = "text/xml"
$soapWebRequest.Method = "POST"
write-host "Initiating Send."
$requestStream = $soapWebRequest.GetRequestStream()
$SOAPRequest.Save($requestStream)
$requestStream.Close()
write-host "Send Complete, Waiting For Response."
$resp = $soapWebRequest.GetResponse()
$responseStream = $resp.GetResponseStream()
$soapReader = [System.IO.StreamReader]($responseStream)
$ReturnXml = [Xml] $soapReader.ReadToEnd()
$responseStream.Close()
write-host "Response Received."
return $ReturnXml
}
$url = 'http://www.facilities.co.za/valid8service/valid8service.asmx'
$soap = [xml]@'
?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>
Valid8Address xmlns="http://www.facilities.co.za/valid8service/valid8service">
ID>string/ID>
Address1>/Address1>
Address2>/Address2>
Address3>/Address3>
Address4>/Address4>
Address5>/Address5>
Address6>/Address6>
PostCode>/PostCode>
/Valid8Address>
/soap12:Body>
/soap12:Envelope>
'@
$ret = Execute-SOAPRequest $soap $url
在這里得到的$ret變量中存儲(chǔ)的是System.Xml.XmlDocument對(duì)象,如果需要查看其中的具體內(nèi)容可以通過Export-Clixml這個(gè)cmdlet將其輸出到本地文件中查看。
這是一段程序代碼。
復(fù)制代碼 代碼如下:
$ret | Export-Clixml c:\1.xml;Get-Content c:\1.xml
您可能感興趣的文章:- PowerShell小技巧之使用New-Module命令動(dòng)態(tài)創(chuàng)建對(duì)象
- Powershell小技巧之編輯Hosts文件
- Powershell小技巧之獲取對(duì)象可變的特征
- PowerShell小技巧之實(shí)現(xiàn)文件下載(類wget)
- PowerShell小技巧之定時(shí)抓取屏幕圖像
- Powershell小技巧之創(chuàng)建一個(gè)新對(duì)象