使用 POST 的 Google App Engine Cron 请求
Posted
技术标签:
【中文标题】使用 POST 的 Google App Engine Cron 请求【英文标题】:Google App Engine Cron Requests Using POST 【发布时间】:2013-08-15 13:52:24 【问题描述】:是否可以使用method=post
通过 Google App Engine 向 URL 发出 cron 请求。我在文档中找不到任何允许使用除 get
以外的其他方法的内容。
https://developers.google.com/appengine/docs/python/config/cron#Python_app_yaml_Cron_support_in_the_development_server
【问题讨论】:
那会有什么价值。如果您想要更多/复杂的信息将其存储在数据存储中并在运行 cron 时获取它。 @TimHoffman 因为 GET 请求可以被浏览器以及用户和服务器之间的基础设施缓存。 GET 请求也可能被浏览器无意中调用(即,前瞻预缓存)。 GET 不适合这种类型的事情。 Google 应该使用 POST 或至少使其成为一种选择。 【参考方案1】:简单的答案是否定的。从docs 中明确指出,cron 作业使用 HTTP GET。最好的办法是将您的方法更改为 GET 并限制对 app.yaml 中 url 的直接访问。 像这样:
handlers:
- url: /report/weekly
script: reports.app
login: admin
【讨论】:
【参考方案2】:这是不可能的。这些请求将包含一个您可以检查的标头“X-AppEngine-Cron”,如果您想防止从浏览器意外运行,这可能会有所帮助。
【讨论】:
以上是关于使用 POST 的 Google App Engine Cron 请求的主要内容,如果未能解决你的问题,请参考以下文章
Google App Engine Java - 对于 POST 参数,request.getParameter 在部署时返回 null,但在本地工作
Google App Engine Java HTTP Post 图像从 API 方法到 Servlet
Google App Engine 上的传出 HTTP 请求位置
仅使用 Google App Engine、webapp2 和 Python 创建 API?
从 Google App Engine 中的数据存储区获取实体以在 iOS 应用中使用
AppEnginePlatformWarning:urllib3 在 Google App Engine 沙箱上使用 URLFetch 而不是套接字