public async Task <INetworkResponse> ExecuteTaskAsync(INetworkRequest req) { var client = new RestClient(Constants.BASE_URL); var response = await client.ExecuteTaskAsync((IRestRequest)req); return(new RestRspns(response)); }
public async Task <INetworkResponse <T> > ExecuteTaskAsync <T>(INetworkRequest req) where T : BaseViewModel { var client = new RestClient(Constants.BASE_URL); var response = await client.ExecuteTaskAsync <T>((IRestRequest)req); return(new RestRspns <T>(response)); }
public async Task <INetworkResponse <T> > ExecuteTaskAsync <T>(INetworkRequest req) { var client = new RestClient(Constants.BASE_URL); var response = await client.ExecuteTaskAsync <T>((IRestRequest)req); Console.WriteLine("Network Response: " + JsonConvert.SerializeObject(response)); return(new RestRspns <T>(response)); }
public static void SendRequestGlobal(INetworkRequest request) { try { Console.WriteLine("Starting request for {1}:{0}.", request.GetRequestId(), request.GetType().Name); var webRequest = (HttpWebRequest) WebRequest.Create( $"https://lapisv200.gumi.sg/lapisProd/app/php/gme/actionSymbol/{request.GetUrl()}.php"); webRequest.Headers.Clear(); webRequest.Method = "POST"; webRequest.Timeout = 30000; webRequest.ContentType = "application/x-www-form-urlencoded"; webRequest.Accept = "*/*"; webRequest.UserAgent = "android"; webRequest.AutomaticDecompression = DecompressionMethods.GZip; webRequest.Headers[HttpRequestHeader.AcceptEncoding] = "gzip"; webRequest.Headers[HttpRequestHeader.AcceptLanguage] = "en"; var data = Encoding.UTF8.GetBytes(GenerateData(request)); Console.WriteLine("Sending Global POST for {1}:{0}.", request.GetRequestId(), request.GetType().Name); using (var stream = webRequest.GetRequestStream()) { stream.Write(data, 0, data.Length); stream.Close(); } Console.WriteLine("Getting response."); var responseStream = webRequest.GetResponse(); var responseStr = ""; using (var stream = responseStream.GetResponseStream()) { using (var reader = new StreamReader(stream, Encoding.UTF8)) { responseStr = reader.ReadToEnd(); } } dynamic responseJson = JsonConvert.DeserializeObject(responseStr); request.HandleResponse( JsonConvert.DeserializeObject <Dictionary <string, dynamic> >(Encryption.DecryptBase64String( (string)responseJson.t7n6cVWf.qrVcDe48, request.GetEncodeKey()))); } catch (WebException ex) { Console.WriteLine(ex); } }
private static string GenerateData(INetworkRequest request) { var dict = new Dictionary <string, Dictionary <string, string> >(); var metaDict = new Dictionary <string, string> { ["z5hB3P01"] = request.GetRequestId(), ["ytHoz4E2"] = "0" }; dict["TEAYk6R1"] = metaDict; var body = request.CreateBody(); var encrypted = Encryption.EncryptBase64String(body, request.GetEncodeKey()); var bodyDict = new Dictionary <string, string> { ["qrVcDe48"] = encrypted }; dict["t7n6cVWf"] = bodyDict; return(JsonConvert.SerializeObject(dict, Formatting.None)); }
public async Task <INetworkResponse <T> > ExecuteTaskAsync <T>(INetworkRequest req) where T : BaseViewModel { var client = new RestClient(Constants.BASE_URL); INetworkResponse <T> response; try { response = new RestRspns <T>(await client.ExecuteTaskAsync <T>((IRestRequest)req)); } catch (Exception) { var resp = new RestRspns { StatusCode = HttpStatusCode.Conflict, Content = "", RawBytes = new byte[0], StatusDescription = "The network URL " + Constants.BASE_URL + " is unreachable." }; response = new RestRspns <T>(response: (RestSharp.IRestResponse)resp); } return(response); }