private String HttpExecution(string uri, string body)
        {
            string url = GetApiUrl() + uri;
            //log.LogText(url);
            HttpClient client = new HttpClient();

            client.BaseAddress = new Uri(url);
            client.DefaultRequestHeaders.Add("TOKEN", "12345");
            client.DefaultRequestHeaders.Add("KEY", "012ea63f-7046-45c3-a0f9-cec86e05d104");
            client.DefaultRequestHeaders.Add("TITLE", "ZIMS-Application");
            client.DefaultRequestHeaders.UserAgent.ParseAdd("Mozilla/5.0 (Windows NT x.y; rv:10.0) Gecko/20100101 Firefox/10.0");
            client.DefaultRequestHeaders
            .Accept
            .Add(new MediaTypeWithQualityHeaderValue("application/json"));      //ACCEPT header

            HttpRequestMessage request = new HttpRequestMessage(HttpMethod.Post, url);

            request.Content = new StringContent(body, Encoding.UTF8, "application/json");//CONTENT-TYPE header

            HttpResponseMessage response = null;

            try
            {
                response = client.SendAsync(request).Result;
            }
            catch (HttpRequestException hre)
            {
                log.LogText("API ERROR: " + hre.ToString());
            }
            catch (ArgumentNullException ane)
            {
                log.LogText("API ERROR: " + ane.ToString());
            }
            catch (InvalidOperationException ioe)
            {
                log.LogText("API ERROR: " + ioe.ToString());
            }
            catch (AggregateException ae)
            {
                log.LogText("API ERROR: " + ae.ToString());
            }
            catch (Exception ex)
            {
                log.LogText("API ERROR: " + ex.ToString());
            }

            if (response == null)
            {
                log.LogText("API ERROR: Null response from API.");
                if (ui.isLoggingUI)
                {
                    ui.LblNetStatusChangeSafe("Error - " + uri, Color.Red);
                }
                return("");
            }
            else if (response.StatusCode == HttpStatusCode.OK)
            {
                //log.LogText("API OK");
                if (ui.isLoggingUI)
                {
                    ui.LblNetStatusChangeSafe("Online - " + uri, Color.Green);
                }
            }
            else         //if (response.StatusCode != HttpStatusCode.OK)
            {
                log.LogText("API ERROR: " + response.ReasonPhrase.ToString());
                if (ui.isLoggingUI)
                {
                    ui.LblNetStatusChangeSafe("Error - " + uri, Color.Red);
                }
                return("");
            }
            //MessageBox.Show(response.ReasonPhrase.ToString());
            return(response.Content.ReadAsStringAsync().Result);
        }