soap的请求在web service是无处不在的,像wcf服务和传统asmx asp.net的web service。如果要测试soap服务是否好用通过web编程来实现就显得太过于复杂了,下面的脚本片段(snippet)将会轻而易举的完成通过powershell测试和调用soap服务:
这是一段程序代码。
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","`"`"")
$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="" xmlns:xsd="" xmlns:soap12="">
<soap12:body>
<valid8address xmlns="">
<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变量中存储的是system.xml.xmldocument对象,如果需要查看其中的具体内容可以通过export-clixml这个cmdlet将其输出到本地文件中查看。
这是一段程序代码。
$ret | export-clixml c:\1.xml;get-content c:\1.xml
如对本文有疑问,
点击进行留言回复!!
相关文章:
-
-
-
-
-
-
-
Flink组件解析
1.什么是flink?Flink 是一个框架和分布式处理引擎,用于对无界和有界数据流进行有状态计算。Flink ...
[阅读全文]
-
-
-
-
架构设计步骤
业务为要,架构先行设计期系统分拆:如何把系统拆解成不同的子系统,模块和业务单元技术选型:选用什么样的基础,技术框...
[阅读全文]
网友评论