2012-10-17 8 views

risposta

14

È possibile utilizzare il client Web di .NET da PowerShell.

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

Questo è un * lotto * più complicato di un semplice oggetto proxy con tutti i metodi e tipi corretti. Se sto semplicemente digitando tutto manualmente, incluso il JSON/XML, allora posso usare Fiddler e averlo finito – Joey

+0

Puoi sempre copiare la richiesta di Fiddler in un file di testo e leggerlo in PowerShell per automatizzare la creazione delle intestazioni, qualunque sia approccio con cui vai. –

+1

Questa è la risposta per PS3 e sotto. – davidhigh

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

Introdotto nel POSH 3.0

+2

Ho ricevuto un errore poiché 'Accept' è un nome di intestazione riservato. Ho finito per usare invece WebClient. – Aaron

+7

Funziona in PowerShell, ma solo v4 e versioni successive. Nella v3, genera un'eccezione. –

0

Sono sorpreso questo non ha messo a punto:

$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 

Per completezza, un riferimento alla proprietà intestazioni:

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

+0

Bene, questo sta usando un metodo completamente diverso per accedere al servizio web. Certo, questa è un'opzione, ma non era quella la domanda. – Joey

Problemi correlati