2008-10-16 15 views
9

Estoy tratando de recuperar una secuencia XML de una URL. Para la mayoría de las URL, mi código a continuación funciona bien. Pero, tengo un par de URL que expiran. Las URL en la pregunta hacen funcionan desde Internet Explorer.Powershell: aumente el tiempo de espera para recuperar XML de una URL

$webclient=New-Object "System.Net.WebClient" 
[xml]$data=$webclient.DownloadString($url) 

Por lo tanto, fui en busca de una forma de aumentar el tiempo de espera. Por lo que he leído, creo que no puedo hacerlo usando System.Net.WebClient. Creo que necesito usar System.Net.WebRequest, pero no puedo hacer que funcione. El código que he estado trabajando es a continuación:

$myHttpWebRequest = [system.net.WebRequest]::Create($url) 
$myHttpWebRequest.Timeout = 600000 
$myHttpWebResponse = $myHttpWebRequest.GetResponse() 
$sr = New-Object System.IO.StreamReader($response.GetResponseStream()) 
[xml]$xml = [xml]$sr.ReadToEnd() 

Las direcciones URL que estoy tratando de acceso son internos a mi empresa, así que no puedo publicarlos. Pero, sí funcionan en IE y la URL real debería ser irrelevante.

Ideas?

EDITAR: Las pruebas preliminares muestran que la adición de $myHttpWebRequest.AuthenticationLevel = "None" funciona. Gracias, Scott Saad.

Respuesta

6

Por defecto, el WebRequest.AuthenticationLevel se establece en MutualAuthRequested, por lo tanto, se va a esperar por algún tipo de respuesta de autenticación. Por lo tanto, probablemente se exceda un tiempo de espera mientras se espera que se produzca la autenticación. No parecía que estuvieras jugando con las credenciales, así que a menos que necesites autenticación, probablemente no necesitarás esto. Pruebe algo como lo siguiente después de crear su WebRequest:

$myHttpWebRequest.AuthenticationLevel = "None" 

espero que esto ayuda a resolver el problema.

Cuestiones relacionadas