2017-09-12 2 views
0

j'ai vu le code suivant dans stackoverflow:Comment obtenir réponse à l'aide WebClient dans powershell

$uri = "http://google.com" 
$wc = New-Object System.Net.WebClient 
$wc.UseDefaultCredentials = $true 
$json = $wc.DownloadString($uri) 

Et cela fonctionne très bien, mais ce que je promenais pour, est que je pouvais faire mémoriser le code d'état de la URL Je frappe.

En fait, lorsque je tape sur une URL ayant le statut 404, elle renvoie une exception pour celle-ci.

Quelqu'un peut-il m'aider concernant la façon dont je peux stocker le statut ou même si je peux stocker l'exception, il revient.

+1

Vous recherchez 'WebRequest' ou' HttpClient'. – SLaks

+0

En fait pour les deux, mais mon problème principal est le statut, j'ai besoin de l'état de l'URL stockée dans une variable –

+0

Vous pouvez voir https://stackoverflow.com/questions/46191812/how-to-run-a-web-request- using-default-credentials-in-powershell Je veux juste récupérer l'état de certaines URL en utilisant mes identifiants par défaut –

Répondre

1

Cela devrait être un bon point de départ pour vous:

#requires -Version 3 

$out = Invoke-WebRequest -Uri 'http://google.com' -UseDefaultCredentials -SessionVariable 'conn' 

Ensuite, vous pouvez vérifier $conn les détails de connexion. $out aura le statut, les retours, etc. $out.StatusCode = 200 dans cet exemple.

+0

Merci pour votre aide, mais en fait je travaille sur la version 2.0 de powershell, mais même si cela m'a donné une idée, merci une fois encore une fois je vais travailler sur –

+0

si l'aide que vous pouvez me fournir https://stackoverflow.com/questions/46191812/how-to-run-a-web-request-using-default-credentials-in-powershell sur ce qu'il sera génial aussi –

0

J'ai fait quelques études et a vu que la méthode suivante fonctionne bien dans powershell 2,0

$req = [system.Net.WebRequest]::Create($uri) 
$req.UseDefaultCredentials = $true 
try 
{ 
$res = $req.GetResponse() 
} 
catch [System.Net.WebException] 
{ 
$res = $_.Exception.Response 
} 
$int = [int]$res.StatusCode 
echo $int 

Et cela a parfaitement fonctionné selon mes besoins.