public async Task <HttpResponseMessage> SendPut <T>(T obj, bool ignoreNullValues = false, bool disableBodyLogs = false) { //Setting headers foreach (var(key, value) in Headers) { _client.DefaultRequestHeaders.Add(key, value); } var options = new JsonSerializerOptions { WriteIndented = true, IgnoreNullValues = ignoreNullValues, Encoder = System.Text.Encodings.Web.JavaScriptEncoder.Create(System.Text.Unicode.UnicodeRanges.All) }; var serializedObject = JsonSerializer.Serialize(obj, options); var todoItemJson = new StringContent(serializedObject, Encoding.UTF8, "application/json"); var url = GetConfiguredUrl(); var httpResponse = await _client.PutAsync(url, todoItemJson); //Clean default headers after request _client.DefaultRequestHeaders.Clear(); if (LogsEnabled) { RWSLogger.ResponseLogs(httpResponse); } return(httpResponse); }
public async Task <TClass> SendDelete <TClass>(bool disableBodyLogs = false) { //Setting headers foreach (var(key, value) in Headers) { _client.DefaultRequestHeaders.Add(key, value); } var url = GetConfiguredUrl(); var httpResponse = await _client.DeleteAsync(url); //Clean default headers after request _client.DefaultRequestHeaders.Clear(); if (LogsEnabled) { RWSLogger.ResponseLogs(httpResponse); } //Check that response status code is 200 httpResponse.EnsureSuccessStatusCode(); return(JsonSerializer.Deserialize <TClass>(await httpResponse.Content.ReadAsStringAsync(), new JsonSerializerOptions() { WriteIndented = true })); }
public Builder AddHeaders(string key, string value) { if (!_restCore.Headers.ContainsKey(key)) { _restCore.Headers.Add(key, value); } else { RWSLogger.ErrorLog($"Try to add duplicate header {key}"); } return(this); }
public async Task <HttpResponseMessage> SendPostMultipart(MultipartFormDataContent form, bool ignoreNullValues = false, bool disableBodyLogs = false) { foreach (var(key, value) in Headers) { _client.DefaultRequestHeaders.Add(key, value); } var url = GetConfiguredUrl(); var httpResponse = await _client.PostAsync(url, form); //Clean default headers after request _client.DefaultRequestHeaders.Clear(); if (LogsEnabled) { RWSLogger.ResponseLogs(httpResponse); } return(httpResponse); }
public async Task <HttpResponseMessage> SendDelete(bool disableBodyLogs = false) { //Setting headers foreach (var(key, value) in Headers) { _client.DefaultRequestHeaders.Add(key, value); } var url = GetConfiguredUrl(); var httpResponse = await _client.DeleteAsync(url); //Clean default headers after request _client.DefaultRequestHeaders.Clear(); if (LogsEnabled) { RWSLogger.ResponseLogs(httpResponse); } return(httpResponse); }