//DELETE call w/ client static async Task<KeyValuePair<JObject, string>> RunDeleteAsync(Uri qUri, HttpClient clientPass) { try { // ... Use HttpClient. WebRequestHandlerWithClientcertificates handler = new WebRequestHandlerWithClientcertificates(); handler.ClientCertificates.Add(cert); using (HttpClient client = new HttpClient(handler)) { client.DefaultRequestHeaders.Authorization = clientPass.DefaultRequestHeaders.Authorization; using (HttpResponseMessage response = await client.DeleteAsync(qUri)) { JObject jResponse = JObject.FromObject(response); string content = await response.Content.ReadAsStringAsync(); return new KeyValuePair<JObject, string>(jResponse, content); } } } catch (Exception e) { Console.WriteLine("DELETE request failed."); Console.WriteLine("URL: " + qUri.ToString()); Console.WriteLine(e); return new KeyValuePair<JObject, string>(null, null); } }
//GET call static async Task<KeyValuePair<JObject, string>> RunGetAsync(Uri qUri) { // ... Use HttpClient. try { WebRequestHandlerWithClientcertificates handler = new WebRequestHandlerWithClientcertificates(); handler.ClientCertificates.Add(cert); using (HttpClient client = new HttpClient(handler)) { using (HttpResponseMessage response = await client.GetAsync(qUri.AbsoluteUri)) { JObject jResponse = JObject.FromObject(response); string content = await response.Content.ReadAsStringAsync(); return new KeyValuePair<JObject, string>(jResponse, content); } } } catch (Exception e) { Console.WriteLine("GET request failed: " + e.ToString()); Console.WriteLine("URL: " + qUri.ToString()); Console.WriteLine(e); return new KeyValuePair<JObject, string>(null, null); } }
//PUT call w/ client static async Task<KeyValuePair<JObject, string>> RunPutAsync(Uri qUri, Object contentToPut, HttpClient clientPass) { try { // ... Use HttpClient. WebRequestHandlerWithClientcertificates handler = new WebRequestHandlerWithClientcertificates(); handler.ClientCertificates.Add(cert); using (HttpClient client = new HttpClient(handler)) { client.DefaultRequestHeaders.Accept.Clear(); client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json")); client.DefaultRequestHeaders.Authorization = clientPass.DefaultRequestHeaders.Authorization; var upContent = JObject.FromObject(contentToPut); var strContent = new System.Net.Http.StringContent(upContent.ToString(), Encoding.UTF8, "application/json"); using (HttpResponseMessage response = await client.PutAsync(qUri, strContent)) { JObject jResponse = JObject.FromObject(response); string content = await response.Content.ReadAsStringAsync(); return new KeyValuePair<JObject, string>(jResponse, content); } } } catch (Exception e) { Console.WriteLine("PUT request failed."); Console.WriteLine("URL: " + qUri.ToString()); Console.WriteLine("Content: " + contentToPut.ToString()); Console.WriteLine(e); return new KeyValuePair<JObject, string>(null, null); } }
//POST call public async Task<KeyValuePair<JObject, string>> RunPostAsync(Uri qUri, Object contentToPush) { try { WebRequestHandlerWithClientcertificates handler = new WebRequestHandlerWithClientcertificates(); handler.ClientCertificates.Add(cert); using (HttpClient client = new HttpClient(handler)) { client.DefaultRequestHeaders.Accept.Clear(); client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json")); //TODO: How do we get session token //client.DefaultRequestHeaders.Authorization = "Token " + "1"; // Newtonsoft Json serialization var upContent = JObject.FromObject(contentToPush); var strContent = new System.Net.Http.StringContent(upContent.ToString(), Encoding.UTF8, "application/json"); using (HttpResponseMessage response = await client.PostAsync(qUri, strContent)) { JObject jResponse = JObject.FromObject(response); string content = await response.Content.ReadAsStringAsync(); result = new KeyValuePair<JObject, string>(jResponse, content); return result; } } } catch (Exception e) { Console.WriteLine("POST request failed."); Console.WriteLine("URL: " + qUri.ToString()); Console.WriteLine("Content: " + contentToPush.ToString()); Console.WriteLine(e); result = new KeyValuePair<JObject, string>(null, null); return result; } }