网站监控的时候避免不了使用curl监控url的返回状态,然后根据返回状态码进行判断这个url是否正确。下面看一下curl的用法,这里只是对curl的常用方法做一个简单的介绍,如果没有介绍的可以留言后期在慢慢补充。
curl的用法有很多,最简单的方法就是在命令行中使用help查看curl的相关参数:
[wolf@wulaoer.org🔥🔥🔥🔥 ~]# curl --help Usage: curl [options...] <url> --abstract-unix-socket <path> Connect via abstract Unix domain socket --alt-svc <file name> Enable alt-svc with this cache file --anyauth Pick any authentication method -a, --append Append to target file when uploading --basic Use HTTP Basic Authentication --cacert <file> CA certificate to verify peer against .............................................................
下面是整理的分类参数:
# 调试类 -v, --verbose 输出信息 -q, --disable 在第一个参数位置设置后 .curlrc 的设置直接失效,这个参数会影响到 -K, --config -A, --user-agent -e, --referer -K, --config FILE 指定配置文件 -L, --location 跟踪重定向 (H) # CLI显示设置 -s, --silent Silent模式。不输出任务内容 -S, --show-error 显示错误. 在选项 -s 中,当 curl 出现错误时将显示 -f, --fail 不显示 连接失败时HTTP错误信息 -i, --include 显示 response的header (H/F) -I, --head 仅显示 响应文档头 -l, --list-only 只列出FTP目录的名称 (F) -#, --progress-bar 以进度条 显示传输进度 # 数据传输类 -X, --request [GET|POST|PUT|DELETE|…] 使用指定的 http method 例如 -X POST -H, --header <header> 设定 request里的header 例如 -H "Content-Type: application/json" -e, --referer 设定 referer (H) -d, --data <data> 设定 http body 默认使用 content-type application/x-www-form-urlencoded (H) --data-raw <data> ASCII 编码 HTTP POST 数据 (H) --data-binary <data> binary 编码 HTTP POST 数据 (H) --data-urlencode <data> url 编码 HTTP POST 数据 (H) -G, --get 使用 HTTP GET 方法发送 -d 数据 (H) -F, --form <name=string> 模拟 HTTP 表单数据提交 multipart POST (H) --form-string <name=string> 模拟 HTTP 表单数据提交 (H) -u, --user <user:password> 使用帐户,密码 例如 admin:password -b, --cookie <data> cookie 文件 (H) -j, --junk-session-cookies 读取文件中但忽略会话cookie (H) -A, --user-agent user-agent设置 (H) # 传输设置 -C, --continue-at OFFSET 断点续转 -x, --proxy [PROTOCOL://]HOST[:PORT] 在指定的端口上使用代理 -U, --proxy-user USER[:PASSWORD] 代理用户名及密码 # 文件操作 -T, --upload-file <file> 上传文件 -a, --append 添加要上传的文件 (F/SFTP) # 输出设置 -o, --output <file> 将输出写入文件,而非 stdout -O, --remote-name 将输出写入远程文件 -D, --dump-header <file> 将头信息写入指定的文件 -c, --cookie-jar <file> 操作结束后,要写入 Cookies 的文件位置
看下面的实例:
获取http的返回状态码
[wolf@wulaoer.org🔥🔥🔥🔥 Desktop]# curl -I -s -w "%{http_code}\n" -o /dev/null www.wulaoer.org 403 [wolf@wulaoer.org🔥🔥🔥🔥 Desktop]# curl -I -s -w "%{http_code}\n" -o /dev/null www.baidu.com 200
# 此参数相当于设置http头 Authorization: curl --user user:password http://www.wulaoer.org/login.php # 使用用户名、密码认证,此参数会覆盖“-n”、“--netrc”和“--netrc-optional”选项 #模拟变淡登录保存头信息 curl -D ./cookie_D.txt -F log=aaaa -F pwd=****** http://www.wulaoer.org/login.php
这里就不做过多的举例了,下面看看curl的返回状态解码:
1 curl 不支持该协议 2 curl 初始化失败 3 URL 格式错误 5 解析代理服务器失败 6 解析主机失败 7 建立与主机的连接失败 8 无法解析 FTP 服务器返回的消息 9 FTP 服务器拒接访问。可能是拒绝登录或拒绝访问特定目录,但很多情况下是访问了一个不存在的位置导致的 11 无法解析 FTP 服务器的 PASS 回复消息 13 无法解析 FTP 服务器的 PASV 回复消息 14 无法解析 FTP 服务器的 227-line 回复消息 15 无法解析 FTP 主机 17 无法与 FTP 服务器建立二进制传输模式 18 文件传输不完整。只有文件的一部分被传送了。 19 FTP 下载/访问指定的文件失败 21 FTP 引用错误 22 HTTP 页面获取失败。将返回 400 及其以上的错误码。 23 写入数据到本地文件系统发生错误 25 FTP 服务器无法存储被上传的文件 26 读取数据出错 27 内存分配失败 28 操作超时 30 FTP 服务器运行 PORT 命令失败 31 FTP 服务器运行 REST 命令失败 33 HTTP 服务器执行 range 命令失败 34 HTTP 服务器 post 方法错误 35 SSL 连接出错。通常是 SSL 握手失败。 36 FTP 断点续传出错,无法继续前一次下载任务。 37 FILE 协议无法打开文件。可能是没有权限导致的 38 LDAP 协议无法执行 bind 操作 39 LDAP 协议执行搜索功能失败 41 没有找到匹配的 LDAP 功能 42 curl 被其它应用程序中止运行 43 发生内部错误。通常是因为调用函数时传递了错误的参数 45 接口调用错误 47 跳转链接数量达到上限 48 为 telnet 协议指定了一个未知的参数 49 telnet 协议的参数格式有误 51 SSL 认证或 SSH 的 MD5 指纹不正确 52 服务器无应答 53 未找到 SSL 加密引擎 54 无法将 SSL 加密引擎设为默认引擎 55 发送网络数据失败 56 接收网络数据失败 58 本地证书有问题 59 无法使用指定的 SSL 密码 60 已知的 CA证书无法用于验证 61 无法识别传输编码 62 无效的 LDAP URL 63 文件大小超过限制 64 请求的 FTP SSL 级别获取失败 65 发送需要进行 rewind 的数据失败 66 解析 SSL 引擎失败 67 用户名/密码验证失败,curl 无法登录 68 TFTP 服务器上没有找到指定的文件 69 对 TFTP 服务器的访问出现权限问题 70 TFTP 服务器已耗尽磁盘空间 71 非法的 TFTP 操作 72 未知的 TFTP 传输 ID 73 TFTP 企图传输一个已经存在的文件 74 用户不存在导致 TFTP 操作失败 75 字符转换失败 76 需要使用字符转换函数 77 读取 SSL CA 证书出错。可能是证书路径不正确,也可能是没有权限 78 URL 中指定的资源不存在 79 SSH 会话中发生了未知错误 80 中断 SSH 连接失败 82 无法加载 CRL 文件。可能是没有指定正确的格式 83 发布者身份验证失败
您可以选择一种方式赞助本站
支付宝扫一扫赞助
微信钱包扫描赞助
赏