示例#1
0
        public IList <TResult> GetListBySearchParameters <TResult, TParams>(string url, TParams searchParameters, HttpClientRequestOptions opts = null)
        {
            if (opts == null)
            {
                opts = new HttpClientRequestOptions();
            }
            IList <TResult> result = null;

            using (var httpClient = new HttpClient())
            {
                if (opts.AuthenticationTokenRequired)
                {
                    httpClient.DefaultRequestHeaders.Add("Authorization", GetAccessToken());
                }
                var endpoint    = _apiBaseUrl + url;
                var json        = JsonConvert.SerializeObject(searchParameters);
                var requestBody = new StringContent(json, Encoding.UTF8, "application/json");
                var call        = httpClient.PostAsync(endpoint, requestBody);
                call.Wait();
                var httpResponse = call.Result;
                if (httpResponse.IsSuccessStatusCode)
                {
                    var content = httpResponse.Content.ReadAsStringAsync();
                    content.Wait();
                    result = JsonConvert.DeserializeObject <IList <TResult> >(content.Result).ToList();
                }
                else
                {
                    throw new ApiException(url, httpResponse.StatusCode.ToString());
                }
            }
            return(result);
        }
示例#2
0
        public TResult GetSingle <TResult>(string url, HttpClientRequestOptions opts = null)
        {
            if (opts == null)
            {
                opts = new HttpClientRequestOptions();
            }
            TResult result = default(TResult);

            using (var httpClient = new HttpClient())
            {
                if (opts.AuthenticationTokenRequired)
                {
                    httpClient.DefaultRequestHeaders.Add("Authorization", GetAccessToken());
                }

                var endpoint = _apiBaseUrl + url;
                var call     = httpClient.GetAsync(endpoint);
                call.Wait();
                var httpResponse = call.Result;
                if (httpResponse.IsSuccessStatusCode)
                {
                    var content = httpResponse.Content.ReadAsStringAsync();
                    content.Wait();
                    result = JsonConvert.DeserializeObject <TResult>(content.Result);
                }
                else
                {
                    throw new ApiException(url, httpResponse.StatusCode.ToString());
                }
            }
            return(result);
        }
示例#3
0
        public void Put <TObject>(string url, TObject obj, HttpClientRequestOptions opts = null)
        {
            if (opts == null)
            {
                opts = new HttpClientRequestOptions();
            }
            using (var httpClient = new HttpClient())
            {
                if (opts.AuthenticationTokenRequired)
                {
                    httpClient.DefaultRequestHeaders.Add("Authorization", GetAccessToken());
                }
                var endpoint = _apiBaseUrl + url;

                var json        = JsonConvert.SerializeObject(obj);
                var requestBody = new StringContent(json, Encoding.UTF8, "application/json");
                var call        = httpClient.PutAsync(endpoint, requestBody);
                call.Wait();
                var httpResponse = call.Result;
                if (httpResponse.IsSuccessStatusCode)
                {
                    var content = httpResponse.Content.ReadAsStringAsync();
                    content.Wait();
                }
                else
                {
                    throw new ApiException(url, httpResponse.StatusCode.ToString());
                }
            }
        }
示例#4
0
 public void Delete(string url, HttpClientRequestOptions opts = null)
 {
     if (opts == null)
     {
         opts = new HttpClientRequestOptions();
     }
     using (var httpClient = new HttpClient())
     {
         if (opts.AuthenticationTokenRequired)
         {
             httpClient.DefaultRequestHeaders.Add("Authorization", GetAccessToken());
         }
         var endpoint = _apiBaseUrl + url;
         var call     = httpClient.DeleteAsync(endpoint);
         call.Wait();
         var httpResponse = call.Result;
         if (httpResponse.IsSuccessStatusCode)
         {
             var content = httpResponse.Content.ReadAsStringAsync();
             content.Wait();
         }
         else
         {
             throw new ApiException(url, httpResponse.StatusCode.ToString());
         }
     }
 }
示例#5
0
 public void Post <TObject>(string url, TObject obj, HttpClientRequestOptions opts = null)
 {
     Post <TObject, object>(url, obj, opts);
 }