curl GET 发送 JSON 作为 HTTP 参数
curl GET send JSON as HTTP parameter
我正在尝试使用 curl 从 bash 脚本向 AWS SQS 发送消息。我以此 article 作为基础。因此,我正在构建以下请求:
https://sqs.eu-west-1.amazonaws.com/[MY_QUEUE_NAME]?Action=SendMessage&MessageBody=[MY_MESSAGE]
这里开始最复杂的。每当我将纯文本用作 MY_MESSAGE 时,一切正常,消息会传送到 SQS,但我想发送一个 JSON:
{"mahine": "SOME_MACHINE", "user": "SOME_USER"}
我还没有找到在 GET 请求中使用花括号作为 HTTP 参数的方法。如何让 {} 符号被识别为简单文本?
真的,您应该将它添加到 POST 中的请求正文中,如下所示:
curl -H "Content-Type: application/json" \
-X POST -d '{"machine":"SOME_MACHINE","user":"SOME_USER"}' \
https://sqs.eu-west-1.amazonaws.com/[MY_QUEUE_NAME]?Action=SendMessage
然而,您可以将 JSON 添加到 URL 中的 GET 请求,但您需要先 encode
使用百分比转义(即 %20 转义 space). {
和 }
在 URL 中无效,需要编码为 %7B
和 %7D
才能接受。
您可以使用此 URL encoder 将您的 JSON 编码为 URL 可接受的格式。
我正在尝试使用 curl 从 bash 脚本向 AWS SQS 发送消息。我以此 article 作为基础。因此,我正在构建以下请求: https://sqs.eu-west-1.amazonaws.com/[MY_QUEUE_NAME]?Action=SendMessage&MessageBody=[MY_MESSAGE]
这里开始最复杂的。每当我将纯文本用作 MY_MESSAGE 时,一切正常,消息会传送到 SQS,但我想发送一个 JSON: {"mahine": "SOME_MACHINE", "user": "SOME_USER"}
我还没有找到在 GET 请求中使用花括号作为 HTTP 参数的方法。如何让 {} 符号被识别为简单文本?
真的,您应该将它添加到 POST 中的请求正文中,如下所示:
curl -H "Content-Type: application/json" \
-X POST -d '{"machine":"SOME_MACHINE","user":"SOME_USER"}' \
https://sqs.eu-west-1.amazonaws.com/[MY_QUEUE_NAME]?Action=SendMessage
然而,您可以将 JSON 添加到 URL 中的 GET 请求,但您需要先 encode
使用百分比转义(即 %20 转义 space). {
和 }
在 URL 中无效,需要编码为 %7B
和 %7D
才能接受。
您可以使用此 URL encoder 将您的 JSON 编码为 URL 可接受的格式。