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);
+ }
+ }
+ }
+}