private async Task<string> getResponseAsync(PostDataWriter args) { //Data request HttpClientHandler handler = new HttpClientHandler(); handler.CookieContainer = cookies; handler.AllowAutoRedirect = false; handler.UseCookies = true; HttpClient client = new HttpClient(handler); HttpResponseMessage response = null; HttpRequestMessage message = new HttpRequestMessage(HttpMethod.Post, args.GetURL()); #if DEBUG Debug.WriteLine(args.GetURL() + " / " + args.GetPostDataString()); #endif StringContent content = new StringContent(args.GetPostDataString()); content.Headers.ContentType = new System.Net.Http.Headers.MediaTypeHeaderValue("application/x-www-form-urlencoded"); message.Content = content; message.Headers.AcceptCharset.Add(new StringWithQualityHeaderValue("gzip")); response = await client.SendAsync(message); string resp; if (response.StatusCode == HttpStatusCode.Redirect) { resp = String.Empty; } else { resp = await response.Content.ReadAsStringAsync(); } return resp; }
public async Task<string> makeOperationAsync(SupportedModules module, SupportedMethods method, Cours reqCours = null, string resStr = "", bool forAuth = false) { if (IsNetworkAvailable() && (forAuth || await isValidAccountAsync(forAuth))) { PostDataWriter args = new PostDataWriter() { module = module, method = method, cidReq = reqCours, resStr = resStr }; String strContent = ""; try { strContent = await getResponseAsync(args); #if DEBUG Debug.WriteLine("Call for :" + module + "/" + method + "\nResponse :" + strContent + "\n"); #endif } catch (Exception ex) { lastException = ex; } return strContent; } else { lastException = new NetworkException("Network Unavailable"); return null; } }