2016-07-26 2 views
0

У меня есть некоторые вызовы веб-сервисов в soapui. Я хочу поместить их в сценарий, чтобы я мог сделать их как вызовы монитора. Не уверен, что будет лучшим вариантом для продолжения. Думая писать сценарий ps для выполнения этих вызовов и использовать скрипт для вывода в качестве монитора. Пожалуйста, совет, если у вас есть лучшее предложение. Ценю вашу помощь! - СэмКак сделать запрос SoapUi в powershell, который требует заголовка cookie?

+0

Это не действительно ясно для меня, что вы просите, но вы можете использовать 'Invoke-WebRequest', чтобы ... вызывать веб-запросы. Вы должны иметь возможность получить это для работы с WCF (я предполагаю, что это служба WCF, поскольку вы используете SoapUI). –

+0

У вас есть рабочий пример для этого? Я пробовал использовать этот командлет - не работал. Когда я делаю запрос от soapui, ему нужен заголовок для cookie. Если вы можете привести пример, который поможет выполнить шаги. Благодаря! –

ответ

0

Ну, вы можете отправить запрос SOAP, как это:

$soap = @" 
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/"> 
    <s:Body> 
     <Geocode xmlns="http://dev.virtualearth.net/webservices/v1/geocode/contracts"> 
     <request xmlns:a="http://dev.virtualearth.net/webservices/v1/geocode" xmlns:i="http://www.w3.org/2001/XMLSchema-instance"> 
      <Credentials xmlns="http://dev.virtualearth.net/webservices/v1/common"> 
       <ApplicationId>ThisIsMySecret</ApplicationId> 
       <Token i:nil="true" /> 
      </Credentials> 
      <Culture xmlns="http://dev.virtualearth.net/webservices/v1/common" i:nil="true" /> 
      <ExecutionOptions xmlns="http://dev.virtualearth.net/webservices/v1/common" i:nil="true" /> 
      <UserProfile xmlns="http://dev.virtualearth.net/webservices/v1/common" i:nil="true" /> 
      <a:Address xmlns:b="http://dev.virtualearth.net/webservices/v1/common"> 
       <b:AddressLine>1747 Reynolds St NW</b:AddressLine> 
       <b:AdminDistrict>TN</b:AdminDistrict> 
       <b:CountryRegion i:nil="true" /> 
       <b:District i:nil="true" /> 
       <b:FormattedAddress i:nil="true" /> 
       <b:Locality>Knoxville</b:Locality> 
       <b:PostalCode>37921</b:PostalCode> 
       <b:PostalTown i:nil="true" /> 
      </a:Address> 
      <a:Options i:nil="true" /> 
      <a:Query i:nil="true" /> 
     </request> 
     </Geocode> 
    </s:Body> 
</s:Envelope> 
"@ 

$headers = @{ 
    'Content-Type' = 'text/xml; charset=utf-8'; 
    'SOAPAction' = 'http://dev.virtualearth.net/webservices/v1/geocode/contracts/IGeocodeService/Geocode' 
} 

Invoke-WebRequest ` 
    -Uri http://dev.virtualearth.net/webservices/v1/geocodeservice/GeocodeService.svc ` 
    -Body $soap ` 
    -Method Post ` 
    -Headers $headers 

Если вам нужно добавить печенье, вы можете просто добавить строку в $headers:

$headers = @{ 
    'Content-Type' = 'text/xml; charset=utf-8'; 
    'SOAPAction' = 'http://dev.virtualearth.net/webservices/v1/geocode/contracts/IGeocodeService/Geocode'; 
    'Cookie' = 'YouCookieGoesHere' 
} 
+0

Спасибо! Я пробовал это и получал эту ошибку: + Invoke-WebRequest ' + ~~~~~~~~~~~~~~~~~~~ + CategoryInfo: NotSpecified: (:) [Invoke-WebRequest], ArgumentException + FullyQualifiedErrorId: System.ArgumentException, Microsoft.PowerShell.Commands.InvokeWebRequestCommand –

+0

Какую версию PowerShell вы используете? –

+0

PowerShell версия 3.0 –

Смежные вопросы