Exemplo n.º 1
0
        public async Task <string> Delete(string action, IJsonQueryParams parameters)
        {
            using (var httpClient = new HttpClient())
            {
                var url      = "/api/v1/" + action;
                var postData = parameters?.ToJson() ?? string.Empty;
                Auth(httpClient, url, HttpMethods.DELETE, postData);
                HttpRequestMessage request = new HttpRequestMessage
                {
                    Content    = new StringContent(postData, Encoding.UTF8, "application/json"),
                    Method     = HttpMethod.Delete,
                    RequestUri = new Uri(CurrentUrl + url)
                };
                var resp = await httpClient.SendAsync(request);

                if (!resp.IsSuccessStatusCode)
                {
                    var error = await resp.Content.ReadAsStringAsync();

                    throw new Exception(error);
                }

                return(await resp.Content.ReadAsStringAsync());
            }
        }
Exemplo n.º 2
0
        public async Task <string> Put(string action, IJsonQueryParams parameters)
        {
            using (var httpClient = new HttpClient())
            {
                var url      = "/api/v1/" + action;
                var postData = parameters?.ToJson() ?? string.Empty;
                Auth(httpClient, url, HttpMethods.PUT, postData);
                var resp = await httpClient.PutAsync(CurrentUrl + url, new StringContent(postData, Encoding.UTF8, "application/json"));

                if (!resp.IsSuccessStatusCode)
                {
                    var error = JsonConvert.DeserializeObject <BitmexApiError>(await resp.Content.ReadAsStringAsync());
                    throw new BitmexApiException(error);
                }

                return(await resp.Content.ReadAsStringAsync());
            }
        }
Exemplo n.º 3
0
        private Task <string> SendAndGetResponseAsync(HttpMethod method, string action, IJsonQueryParams parameters)
        {
            var content = parameters?.ToJson() ?? string.Empty;
            var url     = GetUrl(action);
            var request = new HttpRequestMessage(method, url)
            {
                Content = new StringContent(content, Encoding.UTF8, "application/json")
            };

            return(SendAndGetResponseAsync(request, content));
        }
Exemplo n.º 4
0
 public Task <string> Put(string action, IJsonQueryParams parameters) => SendAndGetResponseAsync(HttpMethod.Put, action, parameters);
Exemplo n.º 5
0
        private Task <BitmexApiResult <string> > SendAndGetResponseAsync(HttpMethod method, string action, IJsonQueryParams parameters)
        {
            var content = parameters?.ToJson() ?? string.Empty;
            var url     = GetUrl(action);

            _logger.LogDebug($"{action} sending content:{content}");
            var request = new HttpRequestMessage(method, url)
            {
                Content = new StringContent(content, Encoding.UTF8, "application/json")
            };

            CorrectUri(request);

            return(SendAndGetResponseAsync(request, content));
        }
Exemplo n.º 6
0
 public Task <BitmexApiResult <string> > Post(string action, IJsonQueryParams parameters) => SendAndGetResponseAsync(HttpMethod.Post, action, parameters);
Exemplo n.º 7
0
        private Task <TcgApiResult <string> > SendAndGetResponseAsync(HttpMethod method, string action, IJsonQueryParams parameters)
        {
            var content = parameters?.ToJson() ?? string.Empty;

            if (action.Contains("{") && action.Contains("}"))
            {
                var pathParameters = GetActionPathParams(action);

                if (!string.IsNullOrEmpty(content))
                {
                    var contentDictionary = JsonConvert.DeserializeObject <Dictionary <string, string> >(content);

                    foreach (var pathParameter in pathParameters)
                    {
                        var actionParamValue = contentDictionary.Where(w => w.Key.ToLower().Contains(pathParameter.ToLower())).FirstOrDefault();
                        action = AddPathParamsToAction(action, pathParameter, actionParamValue.Value);
                        contentDictionary.Remove(actionParamValue.Key);
                    }

                    content = JsonConvert.SerializeObject(contentDictionary);
                }
                else
                {
                    throw new ArgumentOutOfRangeException();
                }
            }

            var url     = GetVersion(action);
            var request = new HttpRequestMessage(method, url)
            {
                Content = new StringContent(content, Encoding.UTF8, "application/json")
            };

            CorrectUri(request);

            return(SendAndGetResponseAsync(request));
        }