New-WebServiceProxy
创建一个 Web 服务代理对象,用于在 Windows PowerShell 中使用和管理 Web 服务。
语法
New-WebServiceProxy
[-Uri] <Uri>
[[-Class] <String>]
[[-Namespace] <String>]
[<CommonParameters>]
New-WebServiceProxy
[-Uri] <Uri>
[[-Class] <String>]
[[-Namespace] <String>]
[-Credential <PSCredential>]
[<CommonParameters>]
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 服务表示为 .NET Framework 对象的 Web 服务代理对象。
示例
示例 1:Create Web 服务的代理
PS C:\> $zip = New-WebServiceProxy -Uri "http://www.webservicex.net/uszip.asmx?WSDL"
此命令在 Windows PowerShell 中创建美国 Zip Web 服务的.NET Framework代理。
示例 2:Create 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 创建 US Zip Web 服务的 .NET Framework 代理。
第一条命令将该 Web 服务的 URI 存储在 $URI 变量中。
第二条命令创建该 Web 服务代理。 命令使用 Uri 参数指定 URI,并使用 Namespace 和 Class 参数指定对象的命名空间和类。
示例 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 服务代理对象的方法。 在下面的示例中将会用到这些方法。
请注意,代理对象 WebServiceProxy 的 TypeName 反映了在前面的示例中指定的命名空间和类名。
示例 4:使用 Web 服务代理
PS C:\> $zip.GetInfoByZip(20500).table
CITY : Washington
STATE : DC
ZIP : 20500
AREA_CODE : 202
TIME_ZONE : E
此命令使用存储在 $zip 变量中的 Web 服务代理。 该命令使用代理的 GetInfoByZip 方法及其 Table 属性。
参数
-Class
指定该 cmdlet 为 Web 服务创建的代理类的名称。 此参数的值与 Namespace 参数一起使用,以提供类的完全限定名称。 默认值是从统一资源标识符 (URI) 生成的。
Type: | String |
Aliases: | FileName, FN |
Position: | 1 |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Credential
指定有权执行此操作的用户帐户。 默认为当前用户。 这是使用 UseDefaultCredential 参数的替代方法。
键入用户名(如 User01 或 Domain01\User01),或输入 PSCredential 对象,例如 Get-Credential cmdlet 生成的对象。 键入用户名时,此 cmdlet 会提示输入密码。
Type: | PSCredential |
Aliases: | Cred |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Namespace
指定新类的命名空间。
此参数的值与 Class 参数的值一起使用,为类生成完全限定的名称。 默认值为 Microsoft.PowerShell.Commands.NewWebserviceProxy.AutogeneratedTypes 以及从 URI 生成的类型。
可以设置 Namespace 参数的值,以便可以访问多个具有相同名称的 Web 服务。
Type: | String |
Aliases: | NS |
Position: | 2 |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Uri
指定 Web 服务的 URI。 请输入 URI 或包含服务说明的文件的路径和文件名。
该 URI 必须引用 .asmx 页或引用返回服务说明的页。
若要返回使用 ASP.NET 创建的 Web 服务的服务说明,请追加“?WSDL“到 Web 服务的 URL (例如, https://www.contoso.com/MyWebService.asmx?WSDL
) 。
Type: | Uri |
Aliases: | WL, WSDL, Path |
Position: | 0 |
Default value: | None |
Required: | True |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-UseDefaultCredential
指示此 cmdlet 使用默认凭据。 此 cmdlet 将生成的代理对象中的 UseDefaultCredential 属性设置为 True。 这是使用 Credential 参数的替代方法。
Type: | SwitchParameter |
Aliases: | UDC |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
输入
None
不能通过管道将输入传递给此 cmdlet。
输出
A Web service proxy object
此 cmdlet 返回 Web 服务代理对象。 该对象的命名空间和类由该命令的参数确定。 默认值是从输入 URI 生成的。
备注
New-WebServiceProxy 使用 System.Net.WebClient 类加载指定的 Web 服务。