【问题标题】:HTTP POST request to AWS API Gateway from .Net app not working as expected从 .Net 应用程序到 AWS API Gateway 的 HTTP POST 请求未按预期工作
【发布时间】:2019-03-12 13:21:48
【问题描述】:

我有一个连接到 SQS 队列的 AWS API 网关,我可以使用 AWS 签名通过控制台和 Postman 发布消息。

我需要在 .Net 应用程序中实现 POST 请求,虽然我得到了 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,但这是另一个“谜团”。

【问题讨论】:

    标签: .net amazon-web-services aws-api-gateway


    【解决方案1】:

    在阅读了这个答案后,我终于解决了这个问题: How to send a Post body in the HttpClient request in Windows Phone 8?

    不要将内容作为 FormUrlEncodedContent 发送,而是将其作为 StringContent 发送。

    【讨论】:

      猜你喜欢
      • 2020-11-18
      • 2015-04-11
      • 2020-11-18
      • 2018-04-24
      • 2018-05-14
      • 2014-11-12
      • 2017-09-27
      相关资源
      最近更新 更多