private async Task <T> SendAsync <T>(string action, KinesisRequest request) where T : notnull, new() { var message = GetRequestMessage(action, request); var responseText = await SendAsync(message).ConfigureAwait(false); return(JsonObject.Parse(responseText).As <T>()); }
private HttpRequestMessage GetRequestMessage(string action, KinesisRequest request) { var json = (JsonObject) new JsonSerializer().Serialize(request, new SerializationOptions(ingoreNullValues: true)); var postBody = json.ToString(pretty: false); return(new HttpRequestMessage(HttpMethod.Post, Endpoint) { Headers = { { "x-amz-target", TargetPrefix + "." + action } }, Content = new StringContent(postBody, Encoding.UTF8, "application/x-amz-json-1.1") }); }