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()); } }
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()); } }
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)); }
public Task <string> Put(string action, IJsonQueryParams parameters) => SendAndGetResponseAsync(HttpMethod.Put, action, parameters);
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)); }
public Task <BitmexApiResult <string> > Post(string action, IJsonQueryParams parameters) => SendAndGetResponseAsync(HttpMethod.Post, action, parameters);
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)); }