如何解决如何在使用 Cloud Scheduler 发出的 HTTP POST 请求中添加 JSON 正文?它会添加 "Content-Type": "application/json" 标头吗?
当您在 Cloud Scheduler 中创建新的 Cron 作业时:
为了传递参数值,我应该在 body
字段中添加什么:
该字段的规范是什么?我应该在那里写 JSON
吗?
假设我想传递这个 JSON
对象:
{
"foo": "bar"
}
"Content-Type": "application/json"
是否自动添加?
解决方法
您可以在正文字段中提供您认为合适的信息。
至少在 AppEngineAppTarget
的情况下 - HttpTarget
的行为可能是相同的,如描述 headers
字段时 documentation 中所示,它们表明如果作业有正文,则 Cloud Scheduler 会设置以下标头:
Content-Type:默认情况下,Content-Type 标头设置为“application/octet-stream”。可以通过在创建作业时将 Content-Type 显式设置为特定媒体类型来覆盖默认值。例如,Content-Type 可以设置为“application/json”。 ...
AFAIK,无法从 Google Cloud Web 控制台提供 Content-Type
或任何其他自定义标头,但您可以根据需要使用 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\"}}"
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。