windows版本的curl工具,如何下载使用?特殊注意事项
发布于 作者:苏南大叔 来源:程序如此灵动~目前苏南大叔在研究的项目内容是elastic search
,各种教程里面最多的例子都是基于curl
的语句。然而,windows
系统里面默认情况下并没有curl
命令。如果下载安装好windows
版本的curl
之后,网上各种elastic search
教程里面的curl
范例就能正常运行了么?这就是本文中要讨论的主要内容。
大家好,这里是苏南大叔的“程序如此灵动”博客,这里记录苏南大叔和计算机代码的故事。本文主要讨论windows
环境下,curl
工具的具体使用情况。本文测试环境:win10
,curl@7.82.0
。以elastic search@8.1.2
为龙套,探讨curl
的几个特殊参数的使用。
意思是:您没安装elastic search
的话,也没有问题,并不影响本文内容的理解。把elastic search
理解为一个可以接收请求的服务器端就行了。
curl
下载
windows
版本的curl
下载地址是:
- https://curl.se/windows/
- https://curl.se/windows/dl-7.82.0_4/curl-7.82.0_4-win64-mingw.zip 【截至发稿,最新的下载地址】
- https://curl.se/windows/curl-win64-latest.zip 【永远最新的地址】
下载后,依然是个纯绿色的压缩包,解压到合适位置。然后在系统path
变量里面,添加到bin
目录的条目即可。
curl
的使用
因为苏南大叔下载这个curl
的主要目的,就是配合elastic search
的调用。所以,这里就还是以修改elastic
用户的密码的需求为例,讨论curl
的各个参数的使用。
可以参考文章:
- https://newsn.net/say/elastic-search-password.html
- https://www.elastic.co/guide/en/elasticsearch/reference/8.1/security-api-change-password.html
为了把用户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
默认情况下,是开启https
的401
认证的。那么,就一下子出来了三个待解决问题及解决方案:
问题 | 方案 |
---|---|
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
的标准,这里用转义符转移双引号。
最终得到的可以顺利执行的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"
这里依然是可以执行成功的。
相关文献
- https://curl.se/windows/
- https://newsn.net/say/elastic-search-password.html
- https://www.elastic.co/guide/en/elasticsearch/reference/8.1/security-api-change-password.html
综述
本文主要介绍了在windows
环境下如何安装使用curl
,同时对于如何对接elastic search
做了有益探索。更多经常文章,请参考下面的链接:
本博客不欢迎:各种镜像采集行为。请尊重原创文章内容,转载请保留作者链接。