我们相信:世界是美好的,你是我也是。平行空间的世界里面,不同版本的生活也在继续...

目前苏南大叔在研究的项目内容是elastic search,各种教程里面最多的例子都是基于curl的语句。然而,windows系统里面默认情况下并没有curl命令。如果下载安装好windows版本的curl之后,网上各种elastic search教程里面的curl范例就能正常运行了么?这就是本文中要讨论的主要内容。

苏南大叔:windows版本的curl工具,如何下载使用?特殊注意事项 - windows-curl
windows版本的curl工具,如何下载使用?特殊注意事项(图6-1)

大家好,这里是苏南大叔的“程序如此灵动”博客,这里记录苏南大叔和计算机代码的故事。本文主要讨论windows环境下,curl工具的具体使用情况。本文测试环境:win10curl@7.82.0。以elastic search@8.1.2为龙套,探讨curl的几个特殊参数的使用。

意思是:您没安装elastic search的话,也没有问题,并不影响本文内容的理解。把elastic search理解为一个可以接收请求的服务器端就行了。

curl下载

windows版本的curl下载地址是:

苏南大叔:windows版本的curl工具,如何下载使用?特殊注意事项 - curl-windows-download
windows版本的curl工具,如何下载使用?特殊注意事项(图6-2)

下载后,依然是个纯绿色的压缩包,解压到合适位置。然后在系统path变量里面,添加到bin目录的条目即可。

苏南大叔:windows版本的curl工具,如何下载使用?特殊注意事项 - 系统变量
windows版本的curl工具,如何下载使用?特殊注意事项(图6-3)

curl的使用

因为苏南大叔下载这个curl的主要目的,就是配合elastic search的调用。所以,这里就还是以修改elastic用户的密码的需求为例,讨论curl的各个参数的使用。

苏南大叔:windows版本的curl工具,如何下载使用?特殊注意事项 - curl正常请求
windows版本的curl工具,如何下载使用?特殊注意事项(图6-4)

可以参考文章:

为了把用户elastic的密码设置为elastic,根据官方说明,相关的elastic search语句如下:

POST /_security/user/elastic/_password
{
  "password" : "elastic"
}
curl -X POST "localhost:9200/_security/user/elastic/_password?pretty" -H 'Content-Type: application/json' -d'
{
  "password" : "elastic"
}
'
elasticsearch的数据交互是基于restful风格的,所以,必然有GET/POST/PUT/PATCH/DELETE这些变化,这些都是用-X参数指定的。

无法执行的官方范例

这个官方的命令在windows版本的curl这边是无法执行的。原因很多,慢慢讨论。先说基础的部分,elasticsearch默认情况下,是开启https401认证的。那么,就一下子出来了三个待解决问题及解决方案:

问题方案
https://https://localhost:9200
证书无法识别-k
401鉴权-u user:password

这个时候,curl命令变为这样:

curl -k -u elastic:elastic -X POST "https://localhost:9200/_security/user/elastic/_password?pretty" -H 'Content-Type: application/json' -d'
{
  "password" : "elastic"
}
'

windows下面的命令折行问题

windows环境下,默认情况下,命令是不能折行的。也就是说上述命令会被断成几节执行。所以,合并成一行执行吧。

curl -k -u elastic:elastic -X POST "https://localhost:9200/_security/user/elastic/_password?pretty" -H 'Content-Type: application/json' -d'{"password" : "elastic"}'

单引号双引号以及转义的问题

合并成一行之后,依然报错。最终的调整方案是:

  • 不能用单引号,换成双引号
  • -d所代表的body部分,因为是个json,所以要符合json的标准,这里用转义符转移双引号。

苏南大叔:windows版本的curl工具,如何下载使用?特殊注意事项 - json匹配问题
windows版本的curl工具,如何下载使用?特殊注意事项(图6-5)

最终得到的可以顺利执行的curl修改elastic serach密码的命令是:

curl -k -u elastic:elastic -d "{\"password\" : \"elastic\"}" -X POST "https://localhost:9200/_security/user/elastic/_password?pretty" -H "Content-Type: application/json"

分成多行执行

默认情况下,命令是不能分多行执行的,其实如果想非要在windows的命令行下分几行执行的话,其实也可以。就是使用^符号进行连接,比如:

curl -k -u elastic:elastic -d "{\"password\" : \"elastic\"}" ^
-X POST "https://localhost:9200/_security/user/elastic/_password?pretty" ^
-H "Content-Type: application/json"

这里依然是可以执行成功的。

苏南大叔:windows版本的curl工具,如何下载使用?特殊注意事项 - 折行符号
windows版本的curl工具,如何下载使用?特殊注意事项(图6-6)

相关文献

综述

本文主要介绍了在windows环境下如何安装使用curl,同时对于如何对接elastic search做了有益探索。更多经常文章,请参考下面的链接:

如果本文对您有帮助,或者节约了您的时间,欢迎打赏瓶饮料,建立下友谊关系。
本博客不欢迎:各种镜像采集行为。请尊重原创文章内容,转载请保留作者链接。

 【福利】 腾讯云最新爆款活动!1核2G云服务器首年50元!

 【源码】本文代码片段及相关软件,请点此获取更多信息

 【绝密】秘籍文章入口,仅传授于有缘之人   curl    elastic