如何从PowerShell New-WebServiceProxy获取XML响应

时间:2015-07-02 07:35:31

标签: xml web-services powershell soap wsdl

因此PowerShell非常棒,在New-WebServiceProxyWSDL一起使用时会自动生成强类型类。我完全能够与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

$personGetEmployeeResponseType,我看不到像GetXML这样的任何方法。我在这里找到了一个类似的主题:How can I view the SOAP/XML that my web service proxy class is sending?,但我不确定如何通过PowerShell拦截调用,如果没有更好的方法。我有时也会看到人们建议使用Fiddler ...我想在PowerShell中返回XML,以便我可以将其导出到文件中。导出PS对象时,Export-Clixml也无法解决问题,而不是原始响应XML

1 个答案:

答案 0 :(得分:0)

我相信您可以使用OuterXml类下的XmlNode属性来实现此目的。 OuterXml属性包含返回响应的标记(与之相比,InnerXml属性不包含标记)。

$proxy.OuterXml应该根据需要显示原始响应XML。