Пример #1
0
        public bool GetSync <T, W>(string command, T t, out W w, out string outMessage) where W : struct
        {
            outMessage = string.Empty;
            using (var client = new HttpClient())
            {
                //Passing service base url
                client.BaseAddress = new Uri(m_baseUrl);
                client.Timeout     = new TimeSpan(0, 0, 5);
                client.DefaultRequestHeaders.Clear();
                //Define request data format
                client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
                if (m_token != null)
                {
                    client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", m_token.access_token);
                }

                try
                {
                    var response = client.GetAsync($"{command}");
                    var result   = response.Result;

                    if (result.IsSuccessStatusCode)
                    {
                        string json = "";
                        using (HttpContent content = result.Content)
                        {
                            json = content.ReadAsStringAsync().Result;
                            w    = JsonConvert.DeserializeObject <W>(json);
                            return(true);
                        }
                    }
                    else
                    {
                        string json = "";
                        using (HttpContent content = result.Content)
                        {
                            json = content.ReadAsStringAsync().Result;
                            HarmoniServiceResponse r = JsonConvert.DeserializeObject <HarmoniServiceResponse>(json);
                            outMessage = r.msg;
                            w          = new W();
                            return(false);
                        }
                    }
                }
                catch (Exception ex)
                {
                    outMessage = ex.Message;
                    w          = new W();
                    return(false);
                }
            }
        }
Пример #2
0
        public async void PostAsync <T>(string command, T t, Action <bool, HarmoniServiceResponse> cb)
        {
            using (var client = new HttpClient())
            {
                //Passing service base url
                client.BaseAddress = new Uri(m_baseUrl);
                client.Timeout     = new TimeSpan(0, 0, 5);
                client.DefaultRequestHeaders.Clear();
                //Define request data format
                client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
                if (m_token != null)
                {
                    client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", m_token.access_token);
                }

                try
                {
                    var result = await client.PostAsJsonAsync($"{command}", t);

                    if (result.IsSuccessStatusCode)
                    {
                        string json = "";
                        using (HttpContent content = result.Content)
                        {
                            json = content.ReadAsStringAsync().Result;
                            cb(true, JsonConvert.DeserializeObject <HarmoniServiceResponse>(json));
                        }
                    }
                    else
                    {
                        string json = "";
                        using (HttpContent content = result.Content)
                        {
                            json = content.ReadAsStringAsync().Result;
                            HarmoniServiceResponse r = new HarmoniServiceResponse();
                            r.msg = json;
                            cb(false, r);
                        }
                    }
                }
                catch (Exception ex)
                {
                    HarmoniServiceResponse r = new HarmoniServiceResponse();
                    r.msg = ex.InnerException != null ? ex.InnerException.Message : ex.Message;
                    cb(false, r);
                }
            }
        }