curl - curl PATCH HTTP2 错误
问题描述
我们正在使用 GitLab CD 解决 Heroku 的部署问题。当我们想将新图像 PATCH 到 heroku 时,我们得到一个 curl 错误 16,这似乎是 curl 中的一个错误。
> PATCH /apps/pacific-reaches-85087/formation HTTP/2
1133 > Host: api.heroku.com
1134 > user-agent: curl/7.69.1
1135 > content-type: application/json
1136 > accept: application/vnd.heroku+json; version=3.docker-releases
1141 { [5 bytes data]
1142 * TLSv1.3 (IN), TLS handshake, Newsession Ticket (4):
1143 { [130 bytes data]
1144 * We are completely uploaded and fine
1145 { [5 bytes data]
1146 * Connection state changed (MAX_CONCURRENT_STREAMS == 250)!
1147 } [5 bytes data]
1148 * stopped the pause stream!
1149 100 121 0 0 100 121 0 1043 --:--:-- --:--:-- --:--:-- 1052
1150 * Connection #0 to host api.heroku.com left intact
1151 curl: (16) Error in the HTTP2 framing layer
因此,我们想退回到 HTTP1,但后来我们遇到了用于识别 PATCH 的错误格式。日志反馈:
1159 {
1160 "id":"invalid_params",
1161 "message":"Require params: updates."
1162 }
IMAGE_ID=$(docker inspect ${HEROKU_REGISTRY_IMAGE} --format={{.Id}})
PAYLOAD='{"updates": [{"type": "web", "docker_image": "'"$IMAGE_ID"'"}]}'
curl --http1.1 -v -n -X PATCH https://api.heroku.com/apps/$HEROKU_APP_NAME/formation \
-d "${PAYLOAD}" \
-H "Content-Type: application/json" \
-H "Accept: application/vnd.heroku+json; version=3.docker-releases" \
-H "Authorization: Bearer ${HEROKU_AUTH_TOKEN}"
所以实际的问题是:有人知道如何修改 PAYLOAD 以使其与 HTTP 1.1 兼容吗?
解决方案
推荐阅读
- python - 最后一个有效项目的子集df - pandas
- email - 使用 imaplib 选择收件箱时,如何处理“文件夹中邮件过多”错误?
- graphql - 内容丰富的 graphql 从内容的媒体字段中获取指向图像的链接
- c# - 我不断收到错误消息,即我的 .NET 模型需要具有 0 args 或仅可选 args 的构造函数?
- javascript - 如何在 React 中访问和更新对象数组中的字段?
- ruby-on-rails - 来自 Github 的 gem rails 没有更新
- docker - 使用 fabric-samples 文件夹启动 Hyperledger Fabric 的测试网络时的端口冲突
- javascript - 通过点击事件监听器获取嵌套元素的属性值
- javascript - 使用正交相机时 GLTF 对象的纹理消失
- heroku - 在 Heroku 中使用 Ncat 进行代理身份验证