2012-10-17 4 views

Antwort

14

Sie könnten .NET-Webclient von PowerShell verwenden.

> $webClient = New-Object System.Net.WebClient 
> $webClient.Headers.add('accept','application/json') 
> $webClient.DownloadString('http://yourURLhere') 
+0

Das ist viel komplizierter als nur ein Proxy-Objekt mit allen geeigneten Methoden und Typen zu bekommen. Wenn ich nur alles manuell mit JSON/XML tippe, dann kann ich einfach Fiddler verwenden und fertig damit sein. – Joey

+0

Sie könnten die Fiddler-Anfrage immer in eine Textdatei kopieren und diese von PowerShell einlesen, um das Erstellen der Header zu automatisieren nähern Sie sich mit. –

+1

Dies ist die Antwort für PS3 und darunter. – davidhigh

60
Invoke-WebRequest http://yourURLhere -Headers @{"accept"="application/json"} 

Eingeführt in POSH 3.0

+2

Ich habe einen Fehler erhalten, da 'Accept' ein reservierter Header-Name ist. Am Ende habe ich stattdessen den WebClient verwendet. – Aaron

+7

Dies funktioniert in PowerShell, aber nur v4 und höher. In Version 3 wird eine Ausnahme ausgelöst. –

0

Ich bin dies nicht kommen überrascht:

$uri = 'http://...' 

$headers = New-Object "System.Collections.Generic.Dictionary[[String],[String]]" 
$headers.Add('Accept','Application/Json') 
$headers.Add('X-My-Header','...') 

$result = Invoke-WebRequest -Uri $uri -Headers $headers 

Für Vollständigkeit, ein Verweis auf die Header-Eigenschaft:

https://msdn.microsoft.com/en-us/library/s4ys34ea(v=vs.110).aspx

+0

Nun, das ist eine völlig andere Methode des Zugriffs auf den Web-Service. Natürlich ist das eine Option, aber darum ging es nicht. – Joey

Verwandte Themen