使用 CURL GET 发送数据

Kla*_*aus 5 curl http elasticsearch

我认为 GET 不应该有主体。但在elasticsearch的上下文中,我不断看到这种查询(例如参见此处):

curl -XGET localhost:9200/test/_msearch --data-binary @requests; echo
Run Code Online (Sandbox Code Playgroud)

在这种情况下,二进制数据是如何发送的?有人可以解释一下发生了什么以及它是如何工作的吗?我首先以为它被转换为 POST,但是,我在 Elasticsearch 前面放置了一个代理,发现curl确实发送了一个 GET。尽管我既无法在标头中找到数据,也无法在参数中找到数据,也无法在正文中找到数据。所以看来我的代理也对这个请求感到困惑。

但是当我直接对elasticsearch执行请求时,它工作得很好。是什么赋予了?

Phi*_*hil 3

GET带有身体的东西是允许的,但不被认为是非常“有意义”的。您可以查看此问题和答案以进行全面讨论。带请求正文的 HTTP GET

关于您的代理的这个答案:https ://stackoverflow.com/a/978173/3516034