Estoy usando Facebook Graph Api y tratando de obtener datos de usuario. Estoy enviando el acceso del usuario símbolo y en caso de que este token ha caducado o Facebook no válido devuelve el código de estado 400 y esta respuesta:Cómo procesar WebResponse cuando .NET lanza WebException ((400) Bad Request)?
{
"error": {
"message": "Error validating access token: The session is invalid because the user logged out.",
"type": "OAuthException"
}
}
El problema es que cuando se utiliza el código C#:
try {
webResponse = webRequest.GetResponse(); // in case of status code 400 .NET throws WebException here
} catch (WebException ex) {
}
Si el código de estado es 400 .NET arroja WebException y mi webResponse
es null
después de que se detecta una excepción, por lo que no tengo la oportunidad de procesarlo. Quiero hacerlo para asegurarme de que el problema esté en el token caducado y no en otro lugar.
¿Hay una manera de hacerlo?
Gracias.
Gracias por la respuesta detallada, ya lo hice de una manera similar. Sé que podría usar Facebook SDK, pero usar la API de Facebook es relativamente fácil en comparación con Google o Twitter, así que decidí hacer todo manualmente aquí para comprender el flujo y tener más control. – Burjua
¿Alguien sabe por qué WebException -> errorResponse.GetResponseStream() es nulo en Silverlight? Aunque puedo ver la respuesta del cuerpo en Fiddler. –
Es nulo para mí también. Haciendo un poco de excavación. Esto funciona como se espera cuando se compila en .net normal. –