New-WebServiceProxy

创建一个 Web 服务代理对象,该对象允许你在 Windows PowerShell 中使用和管理 Web 服务。

语法

NoCredentials (默认值)

New-WebServiceProxy
    [-Uri] <Uri>
    [[-Class] <String>]
    [[-Namespace] <String>]
    [<CommonParameters>]

Credential

New-WebServiceProxy
    [-Uri] <Uri>
    [[-Class] <String>]
    [[-Namespace] <String>]
    [-Credential <PSCredential>]
    [<CommonParameters>]

UseDefaultCredential

New-WebServiceProxy
    [-Uri] <Uri>
    [[-Class] <String>]
    [[-Namespace] <String>]
    [-UseDefaultCredential]
    [<CommonParameters>]

说明

使用 New-WebServiceProxy cmdlet,可以在 Windows PowerShell 中使用 Web 服务。 该 cmdlet 连接到 Web 服务并在 Windows PowerShell 中创建 Web 服务代理对象。 可以使用代理对象来管理 Web 服务。

Web 服务是基于 XML 的程序,它通过网络交换数据,尤其是通过 Internet 交换数据。 Microsoft .NET Framework 提供 Web 服务代理对象,这些对象将 Web 服务表示为 .NET Framework 对象。

示例

示例 1:为 Web 服务创建代理

PS C:\> $zip = New-WebServiceProxy -Uri "http://www.webservicex.net/uszip.asmx?WSDL"

此命令在 Windows PowerShell 中创建美国 Zip Web 服务的 .NET Framework 代理。

示例 2:为 Web 服务创建代理并指定命名空间和类

PS C:\> $URI = "http://www.webservicex.net/uszip.asmx?WSDL"
PS C:\> $zip = New-WebServiceProxy -Uri $URI -Namespace "WebServiceProxy" -Class "USZip"

此命令使用 New-WebServiceProxy cmdlet 创建美国 Zip Web 服务的 .NET Framework 代理。

第一个命令将 Web 服务的 URI 存储在$URI变量中。

第二个命令创建 Web 服务代理。 该命令使用 Uri 参数指定 URI 和 命名空间 参数来指定对象的命名空间和类。

示例 3:显示 Web 服务代理的方法

PS C:\> $zip | Get-Member -MemberType method
TypeName: WebServiceProxy.USZip
Name                      MemberType Definition
----                      ---------- ----------
Abort                     Method     System.Void Abort(
BeginGetInfoByAreaCode    Method     System.IAsyncResul
BeginGetInfoByCity        Method     System.IAsyncResul
BeginGetInfoByState       Method     System.IAsyncResul
BeginGetInfoByZIP         Method     System.IAsyncResul
CreateObjRef              Method     System.Runtime.Rem
Discover                  Method     System.Void Discov
Dispose                   Method     System.Void Dispos
EndGetInfoByAreaCode      Method     System.Xml.XmlNode
EndGetInfoByCity          Method     System.Xml.XmlNode
EndGetInfoByState         Method     System.Xml.XmlNode
EndGetInfoByZIP           Method     System.Xml.XmlNode
Equals                    Method     System.Boolean Equ
GetHashCode               Method     System.Int32 GetHa
GetInfoByAreaCode         Method     System.Xml.XmlNode
GetInfoByCity             Method     System.Xml.XmlNode
GetInfoByState            Method     System.Xml.XmlNode
GetInfoByZIP              Method     System.Xml.XmlNode
GetLifetimeService        Method     System.Object GetL
GetType                   Method     System.Type GetTyp
InitializeLifetimeService Method     System.Object Init
ToString                  Method     System.String ToSt

此命令使用 Get-Member cmdlet 在$zip变量中显示 Web 服务代理对象的方法。 在以下示例中,我们将使用这些方法。

请注意,代理对象的 TypeName WebServiceProxy 反映了上一示例中指定的命名空间和类名。

示例 4:使用 Web 服务代理

PS C:\> $zip.GetInfoByZip(20500).table
CITY      : Washington
STATE     : DC
ZIP       : 20500
AREA_CODE : 202
TIME_ZONE : E

此命令使用存储在$zip变量中的 Web 服务代理。 该命令使用代理及其 Table 属性的 GetInfoByZip 方法。

参数

-Class

指定 cmdlet 为 Web 服务创建的代理类的名称。 此参数的值与 Namespace 参数一起使用,以提供类的完全限定名称。 默认值是从统一资源标识符(URI)生成的。

参数属性

类型:String
默认值:None
支持通配符:False
不显示:False
别名:文件名, FN

参数集

(All)
Position:1
必需:False
来自管道的值:False
来自管道的值(按属性名称):False
来自剩余参数的值:False

-Credential

指定有权执行此作的用户帐户。 默认值为当前用户。 这是使用 UseDefaultCredential 参数的替代方法。

键入用户名(如 User01 或 Domain01\User01),或输入 PSCredential 对象,例如由 Get-Credential cmdlet 生成的用户名。 如果键入用户名,此 cmdlet 会提示输入密码。

参数属性

类型:PSCredential
默认值:None
支持通配符:False
不显示:False
别名:Cred

参数集

Credential
Position:Named
必需:False
来自管道的值:False
来自管道的值(按属性名称):False
来自剩余参数的值:False

-Namespace

指定新类的命名空间。

此参数的值与 参数的值一起使用,以生成类的完全限定名称。 默认值为 Microsoft.PowerShell.Commands.NewWebserviceProxy.AutogeneratedTypes 以及从 URI 生成的类型。

可以设置 Namespace 参数的值,以便可以访问具有相同名称的多个 Web 服务。

参数属性

类型:String
默认值:None
支持通配符:False
不显示:False
别名:NS

参数集

(All)
Position:2
必需:False
来自管道的值:False
来自管道的值(按属性名称):False
来自剩余参数的值:False

-Uri

指定 Web 服务的 URI。 输入包含服务说明的文件的 URI 或路径和文件名。

URI 必须引用 .asmx 页或返回服务说明的页面。 若要返回使用 ASP.NET 创建的 Web 服务的服务说明,请追加“?WSDL“到 Web 服务的 URL(例如,https://www.contoso.com/MyWebService.asmx?WSDL)。

参数属性

类型:Uri
默认值:None
支持通配符:False
不显示:False
别名:西城, WSDL, 路径

参数集

(All)
Position:0
必需:True
来自管道的值:False
来自管道的值(按属性名称):False
来自剩余参数的值:False

-UseDefaultCredential

指示此 cmdlet 使用默认凭据。 此 cmdlet 将生成的代理对象中的 UseDefaultCredential 属性设置为 True。 这是使用 Credential 参数的替代方法。

参数属性

类型:SwitchParameter
默认值:None
支持通配符:False
不显示:False
别名:UDC

参数集

UseDefaultCredential
Position:Named
必需:False
来自管道的值:False
来自管道的值(按属性名称):False
来自剩余参数的值:False

CommonParameters

此 cmdlet 支持通用参数:-Debug、-ErrorAction、-ErrorVariable、-InformationAction、-InformationVariable、-OutBuffer、-OutVariable、-PipelineVariable、-ProgressAction、-Verbose、-WarningAction 和 -WarningVariable。 有关详细信息,请参阅 about_CommonParameters

输入

None

不能通过管道将输入传递给此 cmdlet。

输出

A Web service proxy object

此 cmdlet 返回 Web 服务代理对象。 对象的命名空间和类由命令的参数确定。 默认值是从输入 URI 生成的。

备注

  • New-WebServiceProxy 使用 System.Net.WebClient 类加载指定的 Web 服务。