HTTP POST-запрос к AWS API Gateway из приложения .Net не работает должным образом - PullRequest
0 голосов
/ 12 марта 2019

У меня есть AWS API Gateway, подключенный к очереди SQS, и я могу отправлять сообщения через консоль и почтальон, используя подпись AWS.

Мне нужно реализовать запрос POST в приложении .Net, и, хотя я получаю ответ Ok, отправленное сообщение не отправляется в очередь. Это мой код:

            var signer = new AWS4RequestSigner(AccessKey, SecretKey);
            var request = new HttpRequestMessage
            {
                Method = HttpMethod.Post,
                RequestUri = new Uri(uri)
            };

            var parameters = new List<KeyValuePair<string, string>>();
            parameters.Add(new KeyValuePair<string, string>("Client", client));
            parameters.Add(new KeyValuePair<string, string>("Study", study));

            request.Content = new FormUrlEncodedContent(parameters);

            request = await signer.Sign(request, "execute-api", "eu-west-1");

            var client = new HttpClient();
            var response = await client.SendAsync(request);

            return response.IsSuccessStatusCode;

Без подписавшего я также получаю HTTP 200, но это еще одна «тайна».

1 Ответ

0 голосов
/ 13 марта 2019

Наконец, я решил эту проблему после прочтения этого ответа: Как отправить тело сообщения в запросе HttpClient в Windows Phone 8?

Вместо содержимого, отправленного в виде FormUrlEncodedContent, просто отправьтеэто как StringContent.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...