curl命令相关学习

上一篇 / 下一篇  2018-09-02 00:50:59 / 个人分类:linux

【语法】

curl [option] [URL...]

【概述】

curl命令是一个利用URL规则在命令行下工作的文件传输工具,支持文件的上传和下载,支持包括HTTPHTTPSFTPFTPSSCPSFTPTFTPDICTTELNETLDAPFILE协议。

【常用参数】

curl命令参数很多,这里只列出经常用到的选项,这里有个小技巧,如果你不知道怎么写你想要的curl命令,可以使用火狐浏览器插件resetclient,输入post等报文,该插件会提供对应的curl命令。

-a/--append上传文件时,附加到目标文件

-A:随意指定自己这次访问所宣称的自己的浏览器信息

-b/--cookie <name=string/file> cookie字符串或文件读取位置,使用option来把上次的cookie信息追加到http request里面去。

-c/--cookie-jar <file>操作结束后把cookie写入到这个文件中

-C/--continue-at <offset>  断点续转

-d/--data <data>   HTTP POST方式传送数据

    --data-ascii <data>ascii的方式post数据

     --data-binary <data>以二进制的方式post数据

     --negotiate使用HTTP身份验证

     --digest使用数字身份验证

     --disable-eprt禁止使用EPRTLPRT

     --disable-epsv禁止使用EPSV

-D/--dump-header <file>header信息写入到该文件中

     --egd-file <file>  为随机数据(SSL)设置EGD socket路径

     --tcp-nodelay     使用TCP_NODELAY选项

-e/--referer <URL>  指定引用地址

-F/--form. <name=content>   模拟http表单提交数据

     --form-string <name=string>模拟http表单提交数据

-G/--get    get的方式来发送数据

-H/--header <header>指定请求头参数

    --ignore-content-length  忽略的HTTP头信息的长度

-i/--include     输出时包括protocol头信息

-I/--head仅返回头部信息,使用HEAD请求

-k/--insecure  允许不使用证书到SSL站点

-K/--config    指定的配置文件读取

-l/--list-only   列出ftp目录下的文件名称

    --limit-rate <rate>设置传输速度

     --local-port<NUM>  强制使用本地端口号

-m/--max-time <seconds>指定处理的最大时长

     --max-redirs <num>    设置最大读取的目录数

     --max-filesize <bytes>  设置最大下载的文件总量

-o/--output <file>   指定输出文件名称

-O/--remote-name  把输出写到该文件中,保留远程文件的文件名

-v/--verbose  小写的v参数,用于打印更多信息,包括发送的请求信息,这在调试脚本是特别有用。

-s/--slient减少输出的信息,比如进度

--connect-timeout <seconds>指定尝试连接的最大时长

-x/--proxy <proxyhost[:port]>指定代理服务器地址和端口,端口默认为1080

-u/--user <user[:password]>设置服务器的用户和密码

-r/--range <range>检索来自HTTP/1.1FTP服务器字节范围

   --range-file读取(SSL)的随机文件

-R/--remote-time   在本地生成文件时,保留远程文件时间

    --retry <num>   指定重试次数

    --retry-delay <seconds>   传输出现问题时,设置重试间隔时间

    --retry-max-time <seconds>  传输出现问题时,设置最大重试时间

-s/--silent  静默模式。不输出任何东西

-S/--show-error  显示错误

    --socks4 <host[:port]>socks4代理给定主机和端口

    --socks5 <host[:port]>socks5代理给定主机和端口

    --stderr <file>

-x/--proxy <host[:port]>在给定的端口上使用HTTP代理

-X/--request <command>指定什么命令。curl默认的HTTP动词是GET,使用-X参数可以支持其他动词。

-T/--upload-file <file>指定上传文件路径

【举例】

1、向某接口请求参数:

curl -X POST -i 'http://xxx/' --data '{"AID":"460110538632959","BID":""}'

1、curl -X POST 'hadoop-1:8888/druid/v2/?pretty' -H 'Content-Type:application/json' -d @/usr/local/druid-0.11.0/quickstart/groupBy.json

2、抓取cokkie信息到一个文件中

curl -c cookie0.txt -d "username=****&password=***"http://www.xx.cn/accounts/login/

curl10种常见用法】

转自:https://www.jb51.net/article/118402.htm

 

1.获取页面内容

当我们不加任何选项使用curl时,默认会发送GET请求来获取链接内容到标准输出。

curl http://www.codebelief.com

 

2.显示HTTP

如果我们只想要显示HTTP头,而不显示文件内容,可以使用-I选项:

curl -I http://www.codebelief.com

输出为:

HTTP/1.1 200 OK

Server: nginx/1.10.3

Date: Thu, 11 May 2017 08:24:45 GMT

Content-Type: text/html; charset=utf-8

Content-Length: 24206

Connection: keep-alive

X-Powered-By: Express

Cache-Control: public, max-age=0

ETag: W/"5e8e-Yw5ZdnVVly9/aEnMX7fVXQ"

Vary: Accept-Encoding

也可以同时显示HTTP头和文件内容,使用-i选项:

curl -i http://www.codebelief.com

输出为:

HTTP/1.1 200 OK

Server: nginx/1.10.3

Date: Thu, 11 May 2017 08:25:46 GMT


TAG:

 

评分:0

我来说两句

Open Toolbar