New-WebServiceProxy
建立可以讓您在 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 |
預設值 |
從 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 (例如 https://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 屬性。