public async Task <SettingsResponse> GetSettings(string client, string api, string pattern, string privateKey) { SettingsRequest csr = new SettingsRequest(client, pattern); string json = JsonConvert.SerializeObject(csr); var reqEnvelope = EnvelopeService.PrivateEncrypt(client, json, privateKey); var reqContent = JsonConvert.SerializeObject(reqEnvelope); using (HttpClient httpClient = new HttpClient()) { httpClient.BaseAddress = new Uri(api); httpClient.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json")); HttpRequestMessage req = new HttpRequestMessage(HttpMethod.Post, ""); req.Content = new StringContent(reqContent, Encoding.UTF8, "application/json"); var response = await httpClient.SendAsync(req); if (!response.IsSuccessStatusCode) { return(null); } var content = await response.Content.ReadAsStringAsync(); var envelope = JsonConvert.DeserializeObject <Envelope>(content); string decrypted = EnvelopeService.Decrypt(envelope, privateKey); return(JsonConvert.DeserializeObject <SettingsResponse>(decrypted)); } }