在 Openshift 上调用时,HTTP DELETE 端点丢失正文数据

Http DELETE endpoint losing body data when called on Openshift

我在 Openshift 上向我的服务 运行 添加了一个 v1/health_check 端点。端点接受所有 http 动词和 returns 请求中的内容。

例如,运行: curl -X DELETE -G 'http://localhost:8080/v1/health_check' -F "user_id=1" -F "build_category_id=14" -F "notification_type=slack" 在本地 运行 时反对服务 returns:

{
  "endpoint": "/v1/health_check", 
  "form_data": {
    "build_category_id": "14", 
    "notification_type": "slack", 
    "user_id": "1"
  }, 
  "http_method": "DELETE", 
  "request_data": {}
}

当我对 Openshift 上 运行 的服务使用相同的 curl 请求时,我得到:

{
  "endpoint": "/v1/health_check", 
  "form_data": {}, 
  "http_method": "DELETE", 
  "request_data": {}
}

有人知道为什么 DELETE 方法的主体在 Openshift 中丢失了吗?

其他说明:

不要同时使用 -X DELETE-G 选项。 -G 选项表示使用 HTTP GET。 -X DELETE 表示对 HTTP 方法使用 DELETE

我在 MacOS X 上的测试表明同时使用两者会造成混淆 curl,导致它实际上不会发送请求内容。

$ curl -v --request DELETE -G --data xxx http://.../
*   Trying 52.87.56.37...
* Connected to ... (52.87.56.37) port 80 (#0)
> DELETE /?xxx HTTP/1.1
> Host: ...
> User-Agent: curl/7.43.0
> Accept: */*
>
< HTTP/1.1 200 OK
...