New-WebServiceProxy

建立 Web 服務 Proxy 物件,可讓您在 PowerShell 中使用和管理 Web 服務。

Syntax

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>]

Description

Cmdlet New-WebServiceProxy 可讓您在 PowerShell 中使用 Web 服務。 Cmdlet 會連線到 Web 服務,並在 PowerShell 中建立 Web 服務 Proxy 物件。 您可以使用 Proxy 物件來管理 Web 服務。

Web 服務是以 XML 為基礎的程式,可透過網路交換數據,特別是透過因特網交換數據。 Microsoft .NET Framework 提供 Web 服務 Proxy 物件,以 .NET Framework 物件表示 Web 服務。

範例

範例 1:建立 Web 服務的 Proxy

此範例會在 Windows PowerShell 中建立計算機 Web 服務的 .NET Framework Proxy。

$calc = New-WebServiceProxy -Uri "http://www.dneonline.com/calculator.asmx?wsdl"

範例 2:建立 Web 服務的 Proxy,並指定命名空間和類別

此範例會 New-WebServiceProxy 使用 Cmdlet 來建立計算機 Web 服務的 .NET Framework Proxy。

$URI = "http://www.dneonline.com/calculator.asmx?wsdl"
$calc = New-WebServiceProxy -Uri $URI -Namespace "WSProxy" -Class "Calculator"

命令會 使用 Uri 參數來指定 URI 和 NamespaceClass 參數,以指定 物件的命名空間和類別。

範例 3:顯示 Web 服務 Proxy 的方法

$calc | Get-Member -MemberType method

TypeName: WSProxy.Calculator

Name                      MemberType Definition
----                      ---------- ----------
Abort                     Method     void Abort()
Add                       Method     int Add(int intA, int intB)
AddAsync                  Method     void AddAsync(int intA, int intB), void AddAsync(int intA,
BeginAdd                  Method     System.IAsyncResult BeginAdd(int intA, int intB, System.Asy
BeginDivide               Method     System.IAsyncResult BeginDivide(int intA, int intB, System.
BeginMultiply             Method     System.IAsyncResult BeginMultiply(int intA, int intB, Syste
BeginSubtract             Method     System.IAsyncResult BeginSubtract(int intA, int intB, Syste
CancelAsync               Method     void CancelAsync(System.Object userState)
CreateObjRef              Method     System.Runtime.Remoting.ObjRef CreateObjRef(type requestedT
Discover                  Method     void Discover()
Dispose                   Method     void Dispose(), void IDisposable.Dispose()
Divide                    Method     int Divide(int intA, int intB)
DivideAsync               Method     void DivideAsync(int intA, int intB), void DivideAsync(int
EndAdd                    Method     int EndAdd(System.IAsyncResult asyncResult)
EndDivide                 Method     int EndDivide(System.IAsyncResult asyncResult)
EndMultiply               Method     int EndMultiply(System.IAsyncResult asyncResult)
EndSubtract               Method     int EndSubtract(System.IAsyncResult asyncResult)
Equals                    Method     bool Equals(System.Object obj)
GetHashCode               Method     int GetHashCode()
GetLifetimeService        Method     System.Object GetLifetimeService()
GetType                   Method     type GetType()
InitializeLifetimeService Method     System.Object InitializeLifetimeService()
Multiply                  Method     int Multiply(int intA, int intB)
MultiplyAsync             Method     void MultiplyAsync(int intA, int intB), void MultiplyAsync(
Subtract                  Method     int Subtract(int intA, int intB)
SubtractAsync             Method     void SubtractAsync(int intA, int intB), void SubtractAsync(
ToString                  Method     string ToString()

這個範例會 Get-Member 使用 Cmdlet,在變數中 $calc 顯示 Web 服務 Proxy 物件的方法。 我們會在下列範例中使用這些方法。

請注意, Proxy 物件的 TypeName WebServiceProxy 會反映上一個範例中指定的命名空間和類別名稱。

範例 4:使用 Web 服務 Proxy

PS> $calc.Multiply(6,7)
42

此範例會使用儲存在變數中的 $calc Web 服務 Proxy。 命令會使用 Proxy 的 Multiply 方法。

參數

-Class

指定 Cmdlet 為 Web 服務建立的 Proxy 類別名稱。 此參數的值會與 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 物件,例如 Cmdlet 所產生的 Get-Credential 物件。 如果您輸入使用者名稱,此 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 (例如 , http://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 會將 產生的 Proxy 物件中的 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 服務 Proxy 物件。 物件的命名空間和類別是由 命令的參數所決定。 預設值是從輸入 URI 產生。

備註

New-WebServiceProxy會使用 System.Net.WebClient 類別載入指定的 Web 服務。