建立可以讓您在 Windows PowerShell 中使用並管理 Web 服務的 Web 服務 Proxy 物件。

語法

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 服務 Proxy 物件。您可以使用 Proxy 物件管理 Web 服務。

Web 服務是一種 XML 程式,可以透過網路 (尤其是網際網路) 交換資料。Microsoft .NET Framework 提供以 .NET Framework 物件表示之 Web 服務的 Web 服務 Proxy 物件。

參數

-Class <string>

指定該 Cmdlet 為其建立 Web 服務之 Proxy 類別的名稱。這個參數的值會與 Namespace 參數的值一併使用,以提供類別的完整名稱。預設值是由 URI 產生。

必要?

false

位置?

2

預設值

Generated from the URI

接受管線輸入?

false

接受萬用字元?

false

-Credential <PSCredential>

指定具有執行此動作之權限的使用者帳戶。預設為目前使用者。這是除了使用 UseDefaultCredential 參數以外的另一項選擇。

請輸入使用者名稱,例如 "User01" 或 "Domain01\User01"。或者輸入 PSCredential 物件,例如 Get-Credential Cmdlet 所產生的物件。如果輸入使用者名稱,則系統會提示您提供密碼。

必要?

false

位置?

named

預設值

接受管線輸入?

false

接受萬用字元?

false

-Namespace <string>

指定新類別的命名空間。

這個參數的值會與 Class 參數的值一併使用,以產生類別的完整名稱。預設值為 Microsoft.PowerShell.Commands.NewWebserviceProxy.AutogeneratedTypes 再加上由 URI 產生的型別。

您可以設定 Namespace 參數的值以便存取相同名稱的多個 Web 服務。

必要?

false

位置?

3

預設值

Microsoft.PowerShell.Commands.NewWebserviceProxy.AutogeneratedTypes

接受管線輸入?

false

接受萬用字元?

false

-URI <Uri>

指定 Web 服務的 URI。輸入包含服務描述之檔案的 URI 或路徑和檔名。

此 URI 必須參照 .asmx 網頁或傳回服務描述的網頁。若要傳回以 ASP.NET 建立之 Web 服務的服務描述,請將 "?WSDL" 附加到 Web 服務的 URL (例如 http://www.contoso.com/MyWebService.asmx?WSDL)。

必要?

true

位置?

1

預設值

接受管線輸入?

false

接受萬用字元?

false

-UseDefaultCredential

將產生之 Proxy 物件中的 UseDefaultCredential 參數設為 True。這是除了使用 Credential 參數以外的另一項選擇。

必要?

false

位置?

named

預設值

False

接受管線輸入?

false

接受萬用字元?

false

<CommonParameters>

這個 Cmdlet 支援一般參數:-Verbose、-Debug、-ErrorAction、-ErrorVariable、-OutBuffer 和 -OutVariable。如需詳細資訊,請參閱 about_Commonparameters.

輸入和輸出

輸入型別是可經由管道輸出至 Cmdlet 的物件型別。傳回型別則是 Cmdlet 所傳回的物件型別。

輸入

此 Cmdlet 不會使用來自管線的輸入。

輸出

Web 服務 Proxy 物件

物件的命名空間與類別是由命令的參數所決定。預設值是從輸入統一資源識別項 (URI) 產生。

附註

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

範例 1

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

描述
-----------
這個命令會使用 New-WebServiceProxy 命令,在 Windows PowerShell 中建立 US Zip Web 服務的 .NET Framework Proxy。






範例 2

C:\PS>$URI = "http://www.webservicex.net/uszip.asmx?WSDL" 

C:\PS> $zip = New-WebServiceProxy -uri $URI -namespace WebServiceProxy -class ZipClass

描述
-----------
這個命令會使用 New-WebServiceProxy Cmdlet 建立 US Zip Web 服務的 .NET Framework Proxy。

第一個命令會將 Web 服務的 URI 儲存在 $URI 變數中。

第二個命令建立 Web 服務 Proxy。該命令使用 URI 參數指定 URI、使用 Namespace 和 Class 參數指定物件的命名空間和類別。






範例 3

C:\PS>$zip | get-member -type 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 服務 Proxy 物件的方法。我們會在以下範例中使用這些方法。

請注意,Proxy 物件的 TypeName (WebServiceProxy) 會反映於先前範例中指定的命名空間和類別名稱。






範例 4

C:\PS>$zip.getinfobyzip(20500).table

CITY      : Washington
STATE     : DC
ZIP       : 20500
AREA_CODE : 202
TIME_ZONE : E

描述
-----------
這個命令會使用儲存於 Zip 變數中的 Web 服務。此命令會使用 Proxy 的 GetInfoByZip 方法及其 Table 屬性。






請參閱




目錄