etcd开发,官方go-clientv3接口和http接口使用的问题

开发etcd,使用官方go-clientv3接口存入键值对,同样用go-clientv3接口可以获取到存入的内容,但使用curl http却提示key不存在;反之亦然,请问是哪里用的不对,多谢
go put:cli.Put(context.TODO(), "/key1", "1111", clientv3.WithLease(resp.ID))
go get:cli.Get(ctx, "/key1", clientv3.WithPrefix()) //能获取到key1的值
curl http get:curl -X GET http://127.0.0.1:2379/v2/keys/key1 //获取不到key1
curl http get:curl -X GET http://127.0.0.1:2379/v2/key1 //404错误

你可以分别看看两者发送的http包的格式数据等是否一致

v3和http接口的数据不在同一个存储区,用v2的api才会和http同一个存储区

etcd2和etcd3是不兼容的,两者的api参数也不一样,详细请查看 etcdctl -h 。
可以使用api2 和 api3 写入 etcd3 数据,但是需要注意,使用不同的api版本写入数据**需要使用相应的api版本**读取数据。

从你的问题可以看出,put操作用的是etcd3
而http接口用的是http2