curl

模拟HTTP请求,通过访问URL获取HTTP响应。

语法

curl [选项] 访问URL

选项

    --connect-timeout SECONDS  设置最大请求时间。
-C, --continue-at OFFSET       设置断点续传。
-b, --cookie STRING/FILE       设置Cookie信息,或者从一个文件中读取Cookie信息。
-c, --cookie-jar FILE          设置操作后将Cookie信息保存到指定文件中。
-d, --data DATA                设置采用POST方法发起请求,并定义所包含的普通数据。
     --data-ascii DATA         设置采用POST方法发起请求,并定义所包含的ASCII格式的数据。
     --data-binary DATA        设置采用POST方法发起请求,并定义所包含的二进制格式的数据。
     --data-urlencode DATA     设置采用POST方法发起请求,并定义所包含的URL编码格式的数据。
     --digest                  设置使用数字身份验证。
-D, --dump-header FILE         将请求头部信息保存到一个文件中。
-f, --fail                     设置当连接请求失败时,不显示HTTP错误信息。
-F, --form CONTENT             模拟表单提交POST数据。
-G, --get                      设置采用GET方法发起请求,可以是由"-d"选项所定义的数据。
-H, --header LINE              自定义请求头部信息。
-I, --head                     只显示请求头部信息。
-0, --http1.0                  使用协议HTTP 1.0发起请求。
     --ignore-content-length   设置忽略HTTP头部信息的内容长度。
-i, --include                  设置在输出时包括协议头部信息。
-k, --insecure                 设置允许不使用证书访问到HTTPS站点。
     --interface INTERFACE     设置要使用的主机网卡接口。
-4, --ipv4                     将名称解析成一个IPV4的地址。
-6, --ipv6                     将名称解析成一个IPV6的地址。
-j, --junk-session-cookies     忽略从文件中读取会话Session信息。
     --limit-rate RATE         设置要限制的传输速度。
     --max-filesize BYTES      设置要限制的最大下载文件大小,单位为字节。
     --max-redirs NUM          设置要限制的最大读取目录数量。
-m, --max-time SECONDS         设置最大传输时间。
-o, --output FILE              将结果输出到一个文件中。
-e, --referer                  设置请求引用网址,可以修改请求头部信息中自定义"referer"信息的值。
-O, --remote-name              将结果输出到一个文件中,文件名采用远程文件的文件名。可以添加选项"-#"时,会显示下载进度条。
-R, --remote-time              在本地生成文件时,保留远程文件的时间。
-X, --request COMMAND          设置请求方法,支持GET\POST\HEAD\PUT\DELETE等等。
-u, --user USER[:PASSWORD]     启用HTTP基本身份验证,指定用户名和密码。
-S, --show-error               显示错误信息,在使用"-s"选项时,当出现错误信息时,会显示错误。
-s, --silent                   安静模式。不会输出任何东西。
-A, --user-agent STRING        模拟浏览器,此项可以修改请求头部信息中的"user-agent"字段的值。
-x, --proxy [PROTOCOL://]HOST[:PORT]  设置代理服务器。
-V, --version                  显示软件版本信息并退出。
-w, --write-out FORMAT         响应数据信息,格式:
                                  - %{time_namelookup}     解析域名所花费的时间,单位为秒(s)
                                  - %{time_connect}        建立TCP连接所花费的时间,单位为秒(s)
                                  - %{time_starttransfer}  请求页面,服务器开始响应,传输的第一个响应数据包所花费的时间,单位为秒(s)
                                  - %{time_total}          服务器响应完成,全部响应数据传输完成所花费的 时间,单位为秒(s)
                                  - %{speed_download}      在请求响应过程中,客户端主机下载速度,单位为
                                                           字节(Byte)
-#                             用进度条显示当前的传输情况。

示例

访问普通网站:

[root@localhost ~]# curl -X GET http://www.baidu.com

访问普通网站并以进度条的方式打印传输进度:

[root@localhost ~]# curl -X GET -# -O http://www.baidu.com/index.html
######################################################################## 100.0%

访问接口类网站,模拟POST请求,并添加请求头,请求主体数据为Json格式数据,将获得Json格式的响应数据:

[root@localhost ~]# curl -XPOST -H "UserName: $UserName" -H "Token: $Token" -H "TimeStamp: $TimeStamp" -H 'Content-Type: application/json;charset=utf-8' -d "$ReqString" http://113.108.202.250:50007/ITicketShoppingV2

访问需要HTTP基础身份验证的网站,模拟请求,携带用户名和密码
[root@localhost ~]# curl -XPOST -u root:ABCabc-123 http://www.httpuserpassword.com/member/login

访问网站,并打印响应相关信息,比如响应时长
[root@localhost ~]# curl -o /tmp/access.tmp -s -w name_resolve_time\ \ :%{time_namelookup}\(s\)"\n"TCP_connect_time\ \ \ :%{time_connect}\(s\)"\n"start_response_time:%{time_starttransfer}\(s\)"\n"total_response_time:%{time_total}\(s\)"\n"download_speed\ \ \ \ \ :%{speed_download}\(Byte\)"\n" "http://www.baidu.com"
name_resolve_time  :0.014(s)
TCP_connect_time   :0.020(s)
start_response_time:0.029(s)
total_response_time:0.029(s)
download_speed     :81767.000(Byte)
上一篇:vs添加curl


下一篇:微信支付宝整合支付开发中的常见问题