打印

curl技术

[复制链接]
209|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
冰糖炖雪梨|  楼主 | 2018-10-6 15:04 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
curl命令格式为:“#curl [options] URLs”;选项位置可以在URLs前或后,有通用选项,也有为某些协议单独设计的选项。URL同标准URL,更多知识在之前的内容中。为避免特殊字符可能引起的错误可以给URL加双引号。一.curl-options选项是可以省略的,也可以组合使用,还可以为多个URL分别分配选项。curl可使用的选项依赖于指定版本,某些选项在新版本才有支持,旧版本的选项也不能完全保证在新版本中使用。1. 通用选项参考链接:curl命令行工具通用选项 - 下行数据。参考链接:curl命令行工具通用选项 - 上行数据。2. 选项配置命令选项可以同时使用多个,但不同系统的命令行都有长度限制,为解决此问题,curl提供文件机制,即可以把命令选项放入一个文件中,然后用“-K”选项提取即可。在配置文件中,选项要顶格,每个选项各占一行:【例】;其中长选项可以省略“--”前缀。Linux系统中可以使用文件名“.curlrc”作为默认选项配置文件(不使用“-K选项),且要配置环境变量“export CURL_HOME=xxx”(xxx代表.curlrc所在位置),否则curl到用户家目录寻找。参考链接:curl命令行选项配置示例。3. 选项参数        有些选项要指定参数,选项与参数之间可用空格、“=”或“:”分隔。选项参数可以选择是否带双引号。二.curl-URLscurl使用的URL可以省略scheme部分,默认是HTTP协议,如:“#curl www.baidu.com”;可以通过选项“--proto-default”修改默认的协议,如:“#curl --proto-default https www.baidu.com”。URL可以是多个,各URL使用空格分隔且使用同一选项,curl将从左到右解析。如果想为每个URL指定选项,可以使用“--next”选项分隔,【例】。1. curl-URL通配符curl可使用“[]”和“{}”作为URL通配符,前者用于数值或字母范围匹配、后者用于枚举匹配,它们本身和之间也可以混合匹配。注意,这不是标准URL的写法,是URL在curl中的扩展以便于批量获取/下载。参考链接:curl-URL通配符匹配示例。2. curl-URL别名curl提供URL别名机制,即可以通过一个指定的其它域名来访问原域名,比如通过“www.baidu.com”来访问你的主机。这样操作的意义不大。三.退出状态curl作为命令行工具,其执行要有返回值,在正确执行的情况下固定返回“0”,不同错误有不同的返回值,可能出现的、提示在终端的不同错误约有90种。参考链接:curl命令行_退出状态提示。四.curl-HTTP&HTTPS在cURL支持的协议中,HTTP占有很大分量,使用cURL的用户大部分是在操作HTTP,本节讨论curl命令行工具操作HTTP及HTTPS的内容和细节。1. HTTP响应curl检测到服务器的错误响应时,返回值为52,表示“来自服务器的空响应”,可以用“-w”选项取出来自服务器的返回值:“#curl -w ‘Code:%{response_code}\n’ www.baidu.com”。2. HTTP认证当今浏览器是不需要HTTP认证的,客户端向服务器发送请求即得到响应页面。但一些其它的HTTP客户端的请求可能需要服务器的认证。如果服务器需要认证则响应401代码并在响应头部的“WWW-Authenticate”中包含服务器支持的认证方式,如果是代理则返回407代码并在响应头部的“Proxy-Authenticate”中包含代理支持的认证方式。curl使用“--user”选项指定认证的用户名和密码,如:“#curl --user daniel:secret http://example.com/”。3. HTTP范围“-r”或“--range”选项提供curl客户端指定请求服务器特定字节范围的能力,如:“curl -r 0-199 http://example.com”、“curl -r 200- http://example.com”、“curl -r 0-199,1000-199 http://example.com/”。4. HTTP版本curl默认使用HTTP版本为1.1,可以使用如下选项指定HTTP版本“--http1.0 、--http1.1、--http2”。5. HTTP方法curl支持HTTP-GET、POST、HEAD、PUT等常用方法,其中GET是默认的,可以显示指定“--get”或“-G”选项。POST方法使用“-d”或“-F”选项,前者使用默认的“Content-type”,后者允许使用“-H”选项自定义“Content-type”、HEAD方法使用“-I”选项、PUT方法使用“-T”选项。POST方法向服务器提交数据,数据内容格式可以是:“-d ‘name=admin&shoesize=12’”或“-d name=admin -d showsize=12        ”;也可以把数据内容放入文件中,通过“@”引用:“-d @filename”。通过文件的方式利用选项“--data-binary”还可以发送二进制数据,使用选项“--data-urlencode”可以加密传输数据。PUT方法向服务器提交文件,数据内容格式与POST类似,通常使用“@filename”参数提交文件。6. HTTP重定向服务器对客户端的响应数据可能不是客户端想要的数据,而是服务器给定的一个可以寻找到该数据的路径。通过选项“-L”或“--location”可让curl支持重定向。

使用特权

评论回复

相关帖子

发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

430

主题

436

帖子

0

粉丝