public static void DoRequest(RAHttpRequest req) { // ##RA test code: Task <HttpResponseMessage> PostMsg = client.PostAsync(req.TargetURL, req.Args); PostMsg.ContinueWith(_ => OnHttpResponse(_, req)); }
public static void Update() { if (HttpRequests.Count > 0) { RAHttpRequest req = HttpRequests.Dequeue(); DoRequest(req); } }
public async static void OnHttpResponse(Task <HttpResponseMessage> resp, RAHttpRequest req) { //string s = await resp.Result.Content.ReadAsStringAsync(); byte[] b = await resp.Result.Content.ReadAsByteArrayAsync(); XmlDictionaryReader r = JsonReaderWriterFactory.CreateJsonReader(b, new XmlDictionaryReaderQuotas()); XElement root = XElement.Load(r); switch (req.RequestType) { case WebRequest.RequestLogin: string User = root.Element("User").Value; string Token = root.Element("Token").Value; UInt64 UserScore = Convert.ToUInt64(root.Element("Score").Value); UInt64 UserMessages = Convert.ToUInt64(root.Element("Messages").Value); Console.WriteLine("{0} is logged in, {1} points, {2} messages", User, UserScore, UserMessages); RACore.LocalUser.Setup(User, Token, UserScore, UserMessages); RAWebInterface.GetFriendList(); RACore.EventService.CauseEvent(RAEventType.Login); break; case WebRequest.RequestFriendList: // GetFriendList XElement friendList = root.Element("Friends"); if (friendList != null) { foreach (var friend in friendList.Elements()) { string Friend = friend.Element("Friend").Value; int FriendScore = Convert.ToInt32(friend.Element("RAPoints").Value); string FriendActivity = friend.Element("LastSeen").Value; //friend; Console.WriteLine("{0} ({1}): {2}", Friend, FriendScore, FriendActivity); } } break; case WebRequest.RequestScore: break; case WebRequest.RequestPostActivity: // FAF break; } }