1

我正在尝试执行 AWS APIGateway,并尝试从 HTTPie 模块而不是 Postman 发送请求。它可以从 Postman 完美运行,但 HTTPie 似乎对我不起作用,并且只会引发 307 临时重定向。

使用以下命令:

http POST {userid}.execute-api.ap-southeast-2.amazonaws.com/sqstest/message name=john

输出:

HTTP/1.1 307 Temporary Redirect
Connection: keep-alive
Content-Length: 185
Content-Type: text/html
Date: Mon, 16 Apr 2018 06:28:24 GMT
Location: https://{userid}.execute-api.ap-southeast-2.amazonaws.com/sqstest/message
Server: CloudFront
Via: ################(CloudFront)
X-Amz-Cf-Id: ######################
X-Cache: Redirect from cloudfront

我确实注意到 Content-Type 是 text/html,考虑到我需要发送一个 json,这很奇怪 - 但无论我尝试了哪种命令变体,它仍然会返回相同的结果。据我了解,只要标题相同(它们减去内容类型,即使我使用 -j/--json 定义它也不会改变),它应该与 Postman 一样工作。

有什么帮助吗?干杯。

4

1 回答 1

1

经过几个小时的反复试验,确定错误出在语法上。在命令上需要 https:// 并将其声明为 json 它需要一个分号 (:)。

例如:

http POST https://{userid}.execute-api.ap-southeast-2.amazonaws.com/sqstest/message name:=john

与问题中的陈述相反。

于 2018-04-16T08:32:52.087 回答