curl命令示例
1.从服务器获取响应
来自服务器的所有内容都是对请求的响应。
所以获取HTML页面与下载文件相同。
从http://info.cern.c中获取HTML响应,
curl http://info.cern.ch/
获取帖子列表作为来自服务器的响应(https://jsonplaceholder.typicode.com/posts),
curl https://jsonplaceholder.typicode.com/posts
由于我们知道如何从服务器获取响应,因此我们可以下载文件(例如Google徽标)。
curl https://www.google.com/images/branding/googlelogo/1x/googlelogo_color_272x92dp.png
上面的命令将转储我们无法在终端中查看的二进制图像数据。
我们需要保存它们,然后使用照片查看器查看它们。
Note that various option flags can be placed anywhere on the command instead of the strict ordering. So no worry if you placed any option in the last while the examples had the flag in the beginning.
2.使用默认文件名保存文件
Internet上服务的每个文件都有一个文件名。
使用与下载的文件名使用相同的文件名,请使用-o标志。
curl -O http://www.google.com/robots.txt
3.使用自定义名称保存文件
要使用自己的自定义名称保存文件名,请使用-o标志(严格地)自定义名称。
curl -O http://www.google.com/robots.txt googleRobots.txt
4.下载多个文件
要下载多个文件,请使用空格分隔它们。
curl url1 url2 url3
如果要为所有URL使用-o标志,请使用
curl url1 url2 url3 -O -O -O
应为任何标志进行相同的解决方法。
这是因为某个标志的第一次出现是第一个URL,第二标志是第二URL等。
5.下载一系列文件
CURL具有下载来自服务器的一系列文件的内置能力。
这可以从以下示例中示出。
curl http://www.google.com/logo/logo[1-9].png
上面的命令从logo1.png下载文件,logo2.png,logo3.png和ob to logo9.png。
6.仅在最新时下载文件
仅当文件的修改时间最新的时间之后仅下载文件。
curl url -z "DD MMM YY MM:HH:SS"
7.恢复下载
如果我们已经部分传输了文件,则可以使用-c标志恢复传输。
需要继续传输的偏移应作为-c标志作为参数传递。
curl -C 1024 http://seeni.theitroad.org/files/largeFile.mpv -O
8.上传文件
要将文件上传到服务器,需要使用-t标志,然后是本地系统上的文件路径。
curl -T uploadFile.txt http://upload.theitroad.org/files
9.删除文件
要在服务器中删除名为deletefile.txt的文件,可以使用-x标志,该标志适用于任何HTTP动词/方法(如获取,邮寄,放置,删除,修补程序)。
如果不是所有高级HTTP方法,大多数FTP服务器都将配置DELETE方法。
curl -X DELETE http://upload.theitroad.org/files/deleteFile.txt
我们还可以修改以上的任何HTTP方法进行相应任务的命令。
例如,如果服务器允许Truncate方法(这是组成的HTTP方法,而不是标准的,则只会删除文件中的内容而不是文件,那么可以使用类似于下面的命令。
curl -X TRUNCATE http://upload.theitroad.org/files/mysql.dump
上面提到的是卷曲的主要用途。
但是,可能存在困难,需要被诸如重定向,用户身份验证,SSL证书等等困难,我们可以调用它们,因为它们只是可选的,但仍然对某些目的保持至关重要。
让我们看看这些插件中的一些和如何用下一节用卷曲处理它。
10.避免重定向
请求htttp://www.google.com时,我们将仅服务于www.google.co.in等区域页面。
这是在重定向的帮助下完成的(HTTP数据包具有300-399范围内的状态代码)。
我们可以避免使用选项L.的重定向
curl -L htttp://www.google.com
11.身份验证
当服务器被配置为仅为具有凭据的某些个人服务时,它们将提供用户名和密码。
可以在-u标志的帮助下进行登录。
curl -u username:password http://seeni.theitroad.org/files/tasks.txt
12.限制数据传输
如果要强制数据传输限制使用 - 限制率标志。
以下命令尝试下载速率限制为10k的文件。
curl --limit-rate 10K http://seeni.theitroad.org/files/logoDetails.tgz
13.显示/隐藏传输状态
如果从诸如下载之类的终端重定向响应,则上载然后卷曲自动显示传输的状态/进度表。
如果我们不想看到进度表,只需将命令追加为-s标志。
对于终端的响应,将不会显示进度。
14.忽略SSL证书
我们是否记得我们需要提供安全证书异常的情况访问一些?
如果我们相信源并希望执行数据传输,则可以使用-k标志忽略SSL证书验证。
curl -k https://notSoSecure.org/files/logoDetails.tgz
15.也可以获得标题信息
要显示标题信息以及传输的数据,请使用-i标志。
curl -i http://www.google.com/robots.txt
16.仅获取标题信息
如果只想要标题而不是数据,请使用-i标志
curl -I http://www.google.com/robots.txt
17.更改用户代理
某些和服务器不允许某些类型的设备访问其系统。
但他们如何知道我们正在使用特定的设备?
这是由于用户代理HTTP标头字段。
我们可以使用-a标志更改此用户代理。
curl -A "Mozilla FireFox(42.0)" http://notAllowedForCLI.sites.org/randomFile.png
18.向服务器发送数据
如果服务器需要一些数据,例如令牌或者API键,请使用-d标志发送数据。
需要发送的数据应在命令中遵循标志。
可以使用"&"组合多个数据。
这通常是通过在浏览器中获取和发布请求完成的。
这是我们可以发送表单信息的方式之一。
curl -d "token=34343abvfgh&name='seeni'" http://api.restful.org/getcontent
19.将cookie写为文件
cookie是一些小型信息,允许使用无状态HTTP协议维护会话。
如果我们想了解更多有关cookie的信息,请参阅此伟大资源。
将cookie写入文件,-c标志后跟cookie文件名。
curl -c googleCookie.txt http://www.google.com/files
20.从文件中读取cookie
要从文件中读取cookie,可以使用-b标志,然后可以使用cookie文件名。
curl -b googleCookie.txt http://www.google.com/files
请注意,-b标志仅从文件中读取cookie。
因此,如果服务器重新发送另一个cookie,则可能需要使用-c选项来编写它们。
21.开始一个新的会议
如果要通过丢弃cookie发起新会话,请使用-j标志。
即使我们提供了Cookie文件以读取使用-b标志,它也会启动新会话。
curl -b googleCookie.txt http://www.google.com/files -j