如何在使用 Cloud Scheduler 发出的 HTTP POST 请求上添加 JSON body?它会添加 "Content-Type": "application/json" header 吗?
How to add a JSON body on a HTTP POST request made with Cloud Scheduler? Will it add the "Content-Type": "application/json" header?
当您在 Cloud Scheduler 中创建新的 cron 作业时:
我应该在 body
字段中添加什么,以便传递参数值:
那个字段的规范是什么?我应该在那里写 JSON
吗?
假设我想传递这个 JSON
object:
{
"foo": "bar"
}
"Content-Type": "application/json"
是自动添加的吗?
您可以在 body 字段中提供您认为合适的信息。
至少在 AppEngineAppTarget
的情况下 - 行为可能与 HttpTarget
相同,如描述 headers
字段时在 documentation 中所示,它们表示如果作业具有 body,Cloud Scheduler 将设置以下 headers:
Content-Type: By default, the Content-Type header is set to "application/octet-stream". The default can be overridden by explictly setting Content-Type to a particular media type when the job is created. For example, Content-Type can be set to "application/json".
...
AFAIK,无法从 Google 云 Web 控制台提供 Content-Type
或任何其他自定义 header,但您可以使用 gcloud
CLI如果你需要。请参阅relevant documentation。特别注意 OPTIONAL FLAGS
部分,以及其中的 --headers
、--message-body
和 --message-body-from-file
标志。您的命令应该类似于:
gcloud scheduler jobs create http job-name \
--schedule="0 */3 * * *" \
--uri="http://your.url.com" \
--http-method=POST \
--headers="Content-Type: application/json" \
--message-body="{\"field1\":\"value1\",\"field2\":\"value2\"}}"
当您在 Cloud Scheduler 中创建新的 cron 作业时:
我应该在 body
字段中添加什么,以便传递参数值:
那个字段的规范是什么?我应该在那里写 JSON
吗?
假设我想传递这个 JSON
object:
{
"foo": "bar"
}
"Content-Type": "application/json"
是自动添加的吗?
您可以在 body 字段中提供您认为合适的信息。
至少在 AppEngineAppTarget
的情况下 - 行为可能与 HttpTarget
相同,如描述 headers
字段时在 documentation 中所示,它们表示如果作业具有 body,Cloud Scheduler 将设置以下 headers:
Content-Type: By default, the Content-Type header is set to "application/octet-stream". The default can be overridden by explictly setting Content-Type to a particular media type when the job is created. For example, Content-Type can be set to "application/json". ...
AFAIK,无法从 Google 云 Web 控制台提供 Content-Type
或任何其他自定义 header,但您可以使用 gcloud
CLI如果你需要。请参阅relevant documentation。特别注意 OPTIONAL FLAGS
部分,以及其中的 --headers
、--message-body
和 --message-body-from-file
标志。您的命令应该类似于:
gcloud scheduler jobs create http job-name \
--schedule="0 */3 * * *" \
--uri="http://your.url.com" \
--http-method=POST \
--headers="Content-Type: application/json" \
--message-body="{\"field1\":\"value1\",\"field2\":\"value2\"}}"