0
我正在寫谷歌教室的REST api
調用。 例如在通話中 - https://classroom.googleapis.com/v1/userProfiles/ {userId
}。 如果用戶啓用了Google教室,我會得到一個json
的UserProfile
類型。通用類來處理兩個不同的HTTP響應
{
"id": "XXXXX",
"name": {
"givenName": "student1",
"familyName": "User",
"fullName": "student1 User"
}
}
否則, 如果用戶沒有訪問,我得到這個。
{
"error": {
"code": 403,
"message": "@NotGoogleAppsUser The user is not a Google Apps user.",
"status": "PERMISSION_DENIED"
}
}
的方法,使REST
電話是Generic
方法,將所有其他調用返回的許多不同類型的重複使用。
public T SendRequest<T>(RequestWrapper wrapper)
{
RestSharp.Deserializers.JsonDeserializer deserial = new RestSharp.Deserializers.JsonDeserializer();
var client = new RestClient(wrapper.Url);
RestRequest request = CreateRequest(
wrapper.Data,
wrapper.Header,
wrapper.Method);
IRestResponse response = client.Execute(request);
return deserial.Deserialize<T>(response);
}
問題是,當我送UserProfile
爲T型,反序列化的響應後,我沒有得到訪問代碼。
有沒有什麼辦法可以重新設計我的班級,這樣我就可以得到的所有T type
。
最初的想法是創建一個錯誤類,使UserProfile
繼承它, 作爲UserProfile
屬於一個external DLL
這是不可能的。
任何其他解決方案? TIA
這是禁止的情況下,我有另一種情況下Auth令牌已過期,需要重新生成它。 – SJMan