我在Openshift上运行的服务中添加了v1/health_check
个端点。端点接受所有http谓词并返回请求中的内容。
例如,运行:
curl -X DELETE -G 'http://localhost:8080/v1/health_check' -F "user_id=1" -F "build_category_id=14" -F "notification_type=slack"
在本地运行时对服务返回:
{
"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中迷失了?
其他说明:
gevent.wsgi
WSGIServer
答案 0 :(得分:1)
不要同时使用-X DELETE
和-G
选项。 -G
选项表示使用HTTP GET。 -X DELETE
表示使用DELETE
作为HTTP方法。
我在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
...