我正在尝试使用curl发送GET请求

4

我是一个新手,对OpenStack和软件开发都不是很熟悉,但我会尽力而为。 我正在尝试通过AWS Api Gateway来curl GET请求。

curl命令看起来像这样:

curl -H "Accept: application/json" -H "Content-Type: application/json" -i GET -d 'name=Claus&username=gettest&password=test' https://xy8fbbpvak.execute-api.eu-west-1.amazonaws.com/prod/adduser

但它给我返回了这个响应:
curl: (6) Could not resolve host: GET
HTTP/1.1 403 Forbidden
Content-Type: application/json
Content-Length: 43
Connection: keep-alive
Date: Tue, 18 Jul 2017 06:10:08 GMT
x-amzn-RequestId: c049f3e5-6b7f-11e7-a380-d966a8908f27
x-amzn-ErrorType: MissingAuthenticationTokenException
X-Cache: Error from cloudfront
Via: 1.1 dc81da318a4ae20e51ccfd9463219596.cloudfront.net (CloudFront)
X-Amz-Cf-Id: BI3LX_cwBic2EtCleIHd6yT0B1p4GRoqEbqx85L1nO2UUafPKXC2iQ==

{"message":"Missing Authentication Token"}

AWS API Gateway的方法不需要授权或令牌。

我真的不确定我做错了什么?如果需要更多信息,请告诉我。

1个回答

3

这则信息{"message":"Missing Authentication Token"}并不一定意味着需要授权或令牌,但如果您请求的URL不存在,则会收到相同的错误。

您需要确保使用正确的HTTP方法和资源路径来访问有效的资源。

从您的示例中可以看出,您正在使用GET方法,而操作是prod/adduser,这对我来说听起来不太好,通常在设计API时,addUser应该使用PUTPOST方法进行。

此外,请确保部署您的API更改。当您从API网关进行测试时,它是一个暂存区,但尚未部署。


谢谢您的回答!但我还不太确定如何设置正确的资源路径。我已经成功地进行了POST请求。 - Claus Sandgren
你确定在 addUser 资源上有 GET 方法吗? - Frederic Henri
是的,我确定。 - Claus Sandgren
啊,我想通了!我完全错了。正确的curl命令是: curl -i -H "Accept: application/json" -H "Content-Type: application/json" 'https://xy8fbbpvak.execute-api.eu-west-1.amazonaws.com/prod/adduser?{name=Claus&username=testGET&password=test}' - Claus Sandgren

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接