HTTP方法的AWS API网关问题

时间:2018-05-24 08:12:50

标签: ruby-on-rails amazon-web-services aws-api-gateway

我为HTTP方法PUT创建了一个AWS API网关。当我在API网关中进行测试时,工作正常,但是当我从REST客户端调用它时,我会收到404 bad-requestmissing authentication token错误。我没有向truetrue所需的API密钥设置任何授权。

我将这些查询参数传递给REST客户端:

auth_id : 8798iuyiu123123
time_stamp :1231231
test_json : [{"id"=>"1","value"=>"mount"},{"id"=>"2","value"=>"chart"}]

HEADER
content-type : application/json

当我将test_json值更改为%5B%7B%22id%22:%221%22,%22value%22:%22test%22%7D,%7B%22id%22:%222%22,%22value%22:%2213+%D8%B4%D8%A7%D8%B1%D8%时,我会收到回复。

我是新手做出反应,来自反应

Request.put('https://api-gateway.sqwdwed123.com/eretw/update-chart')
.set('Content-Type', 'application/json')
.query({ auth_id: localStorage.auth_id})
.query({ time_stamp:this.props.time_stamp})
.query({ test_json:JSON.stringify(newadd)})

我应该通过身体传递这个test_json吗?

我做错了吗?

2 个答案:

答案 0 :(得分:0)

这通常与请求不存在的URL有关。请确保您使用正确的HTTP方法和有效资源的资源路径(示例调用URL不包含任何资源路径)。如果这仍然不起作用。确保您实际部署了API。

答案 1 :(得分:0)

错误请求的HTTP响应是因为您具有不是URL编码的查询参数。你现在可以做两件事:

  1. 将test_json作为Query Param传递,但要确保它们是URL编码。这将限制字符串的大小,因此不推荐。

  2. 将test_json作为Request Body传递。 (推荐)