protected async Task <TResult> PostAsync <TData, TResult>(string uri, TData data, string header = "") { HttpClient.EnsureAuthTokenSet(_settingsService.AuthAccessToken); if (!string.IsNullOrEmpty(header)) { HttpClient.AddHeaderParameter(header); } var content = new StringContent(JsonConvert.SerializeObject(data)); content.Headers.ContentType = new MediaTypeHeaderValue("application/json"); var response = await ExecuteAuthenticatedRequestAsync(async() => await HttpClient.PostAsync(uri, content), CancellationToken.None); string serialized = await response.Content.ReadAsStringAsync(); TResult result = await Task.Run(() => JsonConvert.DeserializeObject <TResult>(serialized, _serializerSettings)); return(result); }
public async Task <TResult> PutAsync <TResult>(string uri, TResult data, string token = "", string header = "") { HttpClient httpClient = CreateHttpClient(token); if (!string.IsNullOrEmpty(header)) { httpClient.AddHeaderParameter(header); } var content = new StringContent(JsonConvert.SerializeObject(data)); content.Headers.ContentType = new MediaTypeHeaderValue("application/json"); var response = await ExecuteAuthenticatedRequestAsync(async() => await httpClient.PutAsync(uri, content), CancellationToken.None); await HandleResponse(response); string serialized = await response.Content.ReadAsStringAsync(); TResult result = await Task.Run(() => JsonConvert.DeserializeObject <TResult>(serialized, _serializerSettings)); return(result); }