Elasticsearch PUT 与 XPUT 差异问题

2017-08-18 15:03:42 +08:00
 hagezhou

使用中发现,用 curl -XPUT 一个数据必须加上 id,不然会报错 No handler found for uri [/megacorp/employee/] and method [PUT]

但是如果用 curl -PUT 则不用 id 也可以自动生成 id,效果和 POST 一样 这是为什么呢?

4805 次点击
所在节点    Elasticsearch
5 条回复
hcymk2
2017-08-18 15:21:38 +08:00
curl -PUT 这个 curl 会忽略-PUT 的,没有这种写法,当作 get 请求, curl -XPUT 就是一个 PUT 请求
你可以加个-v 看下
hagezhou
2017-08-18 15:29:32 +08:00
@hcymk2 -v 的输出
* Hostname was NOT found in DNS cache
* Trying 192.168.200.138...
* Connected to 192.168.200.138 (192.168.200.138) port 9200 (#0)
> POST /megacorp/employee/ HTTP/1.1
> User-Agent: curl/7.35.0
> Host: 192.168.200.138:9200
> Accept: */*
> Content-Length: 202
> Content-Type: application/x-www-form-urlencoded
>
* upload completely sent off: 202 out of 202 bytes
< HTTP/1.1 201 Created

看起来确实被忽略了,而且实际上是 POST ?
hagezhou
2017-08-18 15:34:16 +08:00
@hcymk2 XPUT 的-v 确实就是 PUT,看来 curl -PUT 实际上是 POST
hcymk2
2017-08-18 15:35:39 +08:00
加了-d 的吧 当表单提交了 application/x-www-form-urlencoded
crystom
2017-08-18 16:55:14 +08:00
这个是 curl 的命令特点,和 es 没关系

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/383961

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX