因此PowerShell非常棒,在New-WebServiceProxy
与WSDL
一起使用时会自动生成强类型类。我完全能够与web服务交谈,但我实际上希望响应XML 而不是响应对象(强类型)。
以下示例代码:
$proxy = New-WebServiceProxy -Uri http://internal/EmployeeDetails?WSDL
$gpr = new-object "Microsoft.PowerShell.Commands.NewWebserviceProxy.AutogeneratedTypes.WebServiceProxy1S_EmployeeDetails_WSDL.GetEmployeeRequestType"
$req.USERID = "U015412"
$req.clientID = "12345"
$person = $proxy.getEmployee($req)
$person.Person | select * | Format-List
#OUTPUT:
#Name : Smith
#FirstName : John
$person
是GetEmployeeResponseType
,我看不到像GetXML这样的任何方法。我在这里找到了一个类似的主题:How can I view the SOAP/XML that my web service proxy class is sending?,但我不确定如何通过PowerShell拦截调用,如果没有更好的方法。我有时也会看到人们建议使用Fiddler ...我想在PowerShell中返回XML,以便我可以将其导出到文件中。导出PS对象时,Export-Clixml
也无法解决问题,而不是原始响应XML 。
答案 0 :(得分:0)
我相信您可以使用OuterXml
类下的XmlNode
属性来实现此目的。 OuterXml
属性包含返回响应的标记(与之相比,InnerXml
属性不包含标记)。
$proxy.OuterXml
应该根据需要显示原始响应XML。