Tôi đang sử dụng Facebook Graph Api và cố gắng lấy dữ liệu người dùng. Tôi sẽ gửi cho người dùng truy cập token và trong trường hợp thẻ này hết hạn hoặc không hợp lệ Facebook trả về mã trạng thái 400 và phản ứng này:Làm thế nào để xử lý WebResponse khi .NET ném WebException ((400) Yêu cầu Xấu)?
{
"error": {
"message": "Error validating access token: The session is invalid because the user logged out.",
"type": "OAuthException"
}
}
Vấn đề là khi tôi sử dụng mã này C#:
try {
webResponse = webRequest.GetResponse(); // in case of status code 400 .NET throws WebException here
} catch (WebException ex) {
}
Nếu mã trạng thái là 400 .NET ném WebException và webResponse
của tôi là null
sau khi ngoại lệ bị bắt, vì vậy tôi không có cơ hội xử lý nó. Tôi muốn làm điều đó để đảm bảo rằng vấn đề là trong mã thông báo hết hạn và không phải ở một nơi nào khác.
Có cách nào để làm điều đó không?
Cảm ơn.
Cảm ơn câu trả lời chi tiết, tôi đã thực hiện nó alredy theo cách tương tự. Tôi biết rằng tôi có thể sử dụng Facebook SDK, nhưng sử dụng api Facebook là tương đối dễ dàng so với Google hoặc Twitter vì vậy tôi đã quyết định làm mọi thứ theo cách thủ công ở đây để hiểu luồng và kiểm soát nhiều hơn. – Burjua
Bất cứ ai cũng biết tại sao WebException -> errorResponse.GetResponseStream() là null trong Silverlight? Tôi có thể thấy phản ứng của cơ thể trong Fiddler. –
Đó là vô giá đối với tôi. Làm một chút đào. Điều này hoạt động như mong đợi khi được biên dịch trong .net bình thường. –