From d7929850471696498290e525aeab106f644b24ba Mon Sep 17 00:00:00 2001 From: Kalakoi Date: Fri, 15 Dec 2017 12:56:24 -0500 Subject: [PATCH] Add files via upload --- src/REST/RestServices.cs | 57 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 57 insertions(+) create mode 100644 src/REST/RestServices.cs diff --git a/src/REST/RestServices.cs b/src/REST/RestServices.cs new file mode 100644 index 0000000..40aea0a --- /dev/null +++ b/src/REST/RestServices.cs @@ -0,0 +1,57 @@ +using System; +using System.Net.Http; +using System.Net.Http.Headers; +using System.Text; +using System.Threading.Tasks; + +namespace Kalakoi.Crypto.ShapeShift +{ + /// + /// Provides easy access to GET and POST functionality for REST services. + /// + internal static class RestServices + { + /// + /// Sends GET request to REST service and returns response. + /// + /// Address to send request to. + /// JSON data as string. + internal static async Task GetResponseAsync(Uri uri) + { + //Create client to send GET request + using (HttpClient client = new HttpClient()) + { + //Add request headers + client.DefaultRequestHeaders.Add("user-agent", "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome / 58.0.3029.110 Safari / 537.36"); + //Send request and await response + string response = await client.GetStringAsync(uri).ConfigureAwait(false); + return response; + } + } + + /// + /// Sends POST request to REST service with JSON data and returns response. + /// + /// Web address to send request. + /// JSON data to send with request. + /// JSON data as string. + internal static async Task GetPostResponseAsync(Uri uri, string Data) + { + //Create Client to send and receive data from REST service + using (HttpClient client = new HttpClient()) + { + //Add headers for request + client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json")); + client.DefaultRequestHeaders.Add("user-agent", "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome / 58.0.3029.110 Safari / 537.36"); + client.DefaultRequestHeaders.Host = uri.Host; + //Create content to send from JSON string + HttpContent content = new StringContent(Data, Encoding.UTF8, @"application/json"); + //Send POST request and await response + HttpResponseMessage response = await client.PostAsync(uri, content).ConfigureAwait(false); + response.EnsureSuccessStatusCode(); + //Return response JSON as string + return await response.Content.ReadAsStringAsync().ConfigureAwait(false); + } + } + } +}