google-api - 使用 HttpRequest 作为 payload_type 时,Google Cloud Tasks 始终将 HttpMethod 设置为 GET
问题描述
根据此文档 [ https://cloud.google.com/tasks/docs/creating-http-target-tasks ],应该能够创建类型为“http_request”且“http_method”设置为“POST”的任务,但是一旦始终使用方法“GET”创建任务,行为就不是预期的。
在使用 Python 客户端库时遇到此问题后,我决定直接尝试 API 并检查是否是库或 API 本身的问题。
使用产品文档页面 [ https://cloud.google.com/tasks/docs/reference/rest/v2beta3/projects.locations.queues.tasks/create ] 中的“试用此 API”,我尝试创建使用 http_request 和 app_engine_http_request 类型的类似任务,并且始终将 http_method 设置为 POST。
如果我这样设置请求正文:
{
"task": {
"appEngineHttpRequest": {
"httpMethod": "POST",
"relativeUri": "/test",
"body": "c2hhbGxvdyBub3c="
}
}
}
...任务已创建,方法是 POST,如预期的那样。但是,如果我将请求正文设置为:
{
"task": {
"httpRequest": {
"httpMethod": "POST",
"url": "https://httpstat.us/404",
"body": "c2hhbGxvdyBub3c="
}
}
}
...任务已创建,但使用方法 GET 而不是 POST。
这是我在队列中得到的:
我相信这是一个错误,这就是为什么我在这里使用支持页面上推荐的标签 google-apis-explorer 报告它的原因。
无论如何,如果有人能告诉我我是否做错了什么,或者在此期间是否有任何解决方法,我将不胜感激。
谢谢!
解决方案
感谢您的这篇文章,这是现有 Cloud Tasks UI 中的一个错误,我们正在修复这个错误。
同时,可以通过运行以下命令来确定任务的正确 HTTP 方法:
gcloud beta 任务描述
https://cloud.google.com/sdk/gcloud/reference/beta/tasks/describe
上述命令将显示该任务的正确 HTTP 方法。
推荐阅读
- python - 如何使 tkinter 窗口响应在 Tkinter Python 中使用 pack() 方法放置的小部件?
- react-native - 无法在 react-native-scroll-bottom-sheet 中滚动 FlatList
- java - 与依赖的eclipse项目绑定不匹配
- spring-boot - 当多个 Junit 测试一起运行时,@EnableCaching 会被忽略
- reactjs - 无法从本地存储中获取数据并在同一页面上显示该数据
- java - 尝试启动摆动计时器时出现空指针异常错误?
- node.js - `books.find()` 缓冲在 10000 毫秒后超时,heroku 节点 js
- laravel - laravel 中微服务架构的 API 网关
- api - 为什么我点击的时候第二屏的图片和标题总是一样的?
- javascript - 如何在组件之间传输图像和数据 | 反应