Поделиться через


New-WebServiceProxy

Создает прокси-объект веб-службы, который позволяет использовать веб-службу и управлять ею в PowerShell.

Синтаксис

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 позволяет использовать веб-службу в PowerShell. Командлет подключается к веб-службе и создает объект прокси-сервера веб-службы в PowerShell. Прокси-объект можно использовать для управления веб-службой.

Веб-служба — это программа на основе XML, которая обменивается данными по сети, особенно через Интернет. Платформа Microsoft .NET Framework включает прокси-объекты веб-служб, представляющие веб-службы в виде объектов .NET Framework.

Примеры

Пример 1. Создание прокси-сервера для веб-службы

В этом примере создается платформа .NET Framework прокси-сервер веб-службы калькулятора в Windows PowerShell.

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

Пример 2. Создание прокси-сервера для веб-службы и указание пространства имен и класса

В этом примере используется New-WebServiceProxy командлет для создания платформа .NET Framework прокси-сервера веб-службы калькулятора.

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

Команда использует параметр URI для указания URI и параметров пространства имен и класса, чтобы указать пространство имен и класс объекта.

Пример 3. Отображение методов прокси-сервера веб-службы

$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 для отображения методов объекта прокси-сервера веб-службы в переменной $calc . Эти методы используются в следующем примере.

Обратите внимание, что Имя типа прокси-объекта WebServiceProxy отражает пространство имен и имена классов, указанные в предыдущем примере.

Пример 4. Использование прокси-сервера веб-службы

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

В этом примере используется прокси-сервер веб-службы, хранящийся в переменной $calc . Команда использует метод умножения прокси-сервера.

Параметры

-Class

Задает имя прокси-класса, который командлет создает для веб-службы. Значение этого параметра используется вместе с параметром пространства имен для предоставления полного имени для класса. Значение по умолчанию создается из универсального идентификатора ресурса (URI).

Тип:String
Aliases:FileName, FN
Position:1
Default value:None
Обязательно:False
Принять входные данные конвейера:False
Принять подстановочные знаки:False

-Credential

Указывает учетную запись пользователя с разрешением на выполнение этого действия. По умолчанию используется текущий пользователь. Это альтернатива использованию параметра UseDefaultCredential .

Введите имя пользователя, например User01 или Domain01\User01, или введите объект PSCredential , например объект, созданный командлетом Get-Credential . При вводе имени пользователя этот командлет запрашивает пароль.

Тип:PSCredential
Aliases:Cred
Position:Named
Default value:None
Обязательно:False
Принять входные данные конвейера:False
Принять подстановочные знаки:False

-Namespace

Задает пространство имен для нового класса.

Значение этого параметра используется вместе со значением параметра Class для создания полного имени класса. Значением по умолчанию является Microsoft.PowerShell.Commands.NewWebserviceProxy.AutogeneratedTypes , а также тип, созданный из URI.

Можно задать значение параметра пространства имен, чтобы получить доступ к нескольким веб-службам с одинаковым именем.

Тип:String
Aliases:NS
Position:2
Default value:None
Обязательно:False
Принять входные данные конвейера:False
Принять подстановочные знаки:False

-Uri

Задает URI веб-службы. Введите URI или путь и имя файла файла, содержащего описание службы.

Универсальный .asmx код ресурса (URI) должен возвращать страницу или страницу, возвращающую описание службы. Чтобы вернуть описание службы веб-службы, созданной с помощью ASP.NET, добавьте "? WSDL" в URL-адрес веб-службы (например, http://www.contoso.com/MyWebService.asmx?WSDL).

Тип:Uri
Aliases:WL, WSDL, Path
Position:0
Default value:None
Обязательно:True
Принять входные данные конвейера:False
Принять подстановочные знаки:False

-UseDefaultCredential

Указывает, что этот командлет использует учетные данные по умолчанию. Этот командлет задает свойство UseDefaultCredential в результирующем прокси-объекте значение True. Это альтернатива использованию параметра Credential .

Тип:SwitchParameter
Aliases:UDC
Position:Named
Default value:None
Обязательно:False
Принять входные данные конвейера:False
Принять подстановочные знаки:False

Входные данные

None

В этот командлет нельзя передать входные данные.

Выходные данные

A Web service proxy object

Этот командлет возвращает объект прокси-службы веб-службы. Пространство имен и класс объекта определяются параметрами команды. Значение по умолчанию создается из входного URI.

Примечания

New-WebServiceProxyиспользует класс System.Net.WebClient для загрузки указанной веб-службы.