2016-07-26 7 views
0

Ich habe einige Web-Service-Anrufe in Soapui. Ich möchte sie in ein Skript schreiben, damit ich sie als Monitoranrufe erstellen kann. Nicht sicher, was die beste Option wäre, um fortzufahren. Denken Sie daran, ps-Skript zu schreiben, um diese Aufrufe zu machen und verwenden Sie Skript, um als Monitor urn. Bitte beraten Sie, wenn Sie einen besseren Vorschlag haben. Schätze deine Hilfe! - Samwie SoapUi Anfrage in Powershell machen, die Header Cookie benötigt?

+0

Es ist nicht wirklich klar zu mir, was Sie fragen, aber Sie können 'Invoke-WebRequest' zu, gut ... aufrufen Web-Anfragen. Sie sollten in der Lage sein, das mit WCF zu arbeiten (ich nehme an, es ist ein WCF-Dienst, da Sie SoapUI verwenden). –

+0

Haben Sie ein funktionierendes Beispiel dafür? Ich habe versucht, dieses Cmdlet zu verwenden - hat nicht funktioniert. Wenn ich die Anfrage von Soapui mache, braucht es einen Header für Cookie. Wenn Sie ein Beispiel geben können, das Ihnen hilft, die Schritte zu befolgen. Vielen Dank! –

Antwort

0

Nun können Sie eine SOAP-Anforderung wie folgt senden:

$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 

Wenn Sie ein Cookie hinzufügen möchten, können Sie nur die Zeichenfolge $headers hinzufügen:

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

Danke! Ich habe das versucht und diesen Fehler bekommen: + Invoke-WebRequest ' + ~~~~~~~~~~~~~~~~ + CategoryInfo: NotSpecified: (:) [Invoke-WebRequest], ArgumentException + FullyQualifiedErrorId: System.ArgumentException, Microsoft.PowerShell.Commands.InvokeWebRequestCommand –

+0

Welche Version von PowerShell verwenden Sie? –

+0

PowerShell Version 3.0 –

Verwandte Themen