curl

Posted shabake

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了curl相关的知识,希望对你有一定的参考价值。

curl详解

用法:curl [options ...] <url>
选项:(H)仅表示HTTP / HTTPS,(F)表示仅限FTP
     --anyauth选择“任何”认证方法(H)
 -a,--append上传时追加到目标文件(F / SFTP)
      - 基本使用HTTP基本认证(H)
     --cacert FILE CA证书验证对等体(SSL)
     --capath DIR CA目录以验证对等(SSL)
 -E,--cert CERT [:PASSWD]客户端证书文件和密码(SSL)
     --cert-type TYPE证书文件类型(DER / PEM / ENG)(SSL)
      - 密码LIST要使用的SSL密码(SSL)
      - 压缩请求压缩响应(使用deflate或gzip)
 -K,--config FILE指定要读取的配置文件
     --connect-timeout SECONDS允许连接的最长时间
 -C, - 继续 - 在OFFSET恢复传输偏移
 -b,--cookie STRING / FILE从(H)读取Cookie的字符串或文件
 -c,--cookie-jar FILE操作后将cookie写入此文件(H)
     --create-dirs创建必需的本地目录层次结构
     --crlf在上传时将LF转换为CRLF
     --crlfile FILE从给定文件获取PEM格式的CRL列表
 -d, - 数据DATA HTTP POST数据(H)
      - 数据 - ASCII数据HTTP POST ASCII数据(H)
      - 数据二进制数据HTTP POST二进制数据(H)
     --data-urlencode DATA HTTP POST数据网址编码(H)
      - 指定STRING GSS-API委派许可
      - 最小使用HTTP摘要身份验证(H)
      - 禁用eprt使用EPRT或LPRT(F)
      - 可以使用EPSV(F)抑制
 -D,--dump-header FILE将头文件写入此文件
     --egd-file随机数据(SSL)的FILE EGD套接字路径
     --engine ENGINGE加密引擎(SSL)。 “ - 引擎列表”列表
 -f,--fail在HTTP错误(H)上静默失败(根本不输出)
 -F,--form CONTENT指定HTTP多部分POST数据(H)
     --form-string STRING指定HTTP多部分POST数据(H)
     --ftp-account DATA帐号数据字符串(F)
     --ftp-alternative-to-user命令字符串替换“USER [name]”(F)
     --ftp-create-dirs如果不存在则创建远程目录(F)
     --ftp方法[MULTICWD / NOCWD / SINGLECWD]控制CWD使用(F)
     --ftp-pasv使用PASV / EPSV而不是PORT(F)
 -P,--ftp-port ADR使用带有给定地址而不是PASV(F)的端口
     --ftp-skip-pasv-ip跳过PASV(F)的IP地址
     --ftp-pret在PASV之前发送PRET(对于drftpd)(F)
     --ftp-ssl-ccc认证后发送CCC(F)
     --ftp-ssl-ccc模式ACTIVE / PASSIVE设置CCC模式(F)
     --ftp-ssl-control需要SSL / TLS进行ftp登录,清除传输(F)
 -G,--get使用HTTP GET(H)发送-d数据
 -g,--globoff使用{}和[]禁用URL序列和范围
 -H,--header LINE自定义标头传递到服务器(H)
 -I,--head仅显示文档信息
 -h,--help这个帮助文本
     --hostpubmd5 MD5十六进制编码的主机公钥的MD5字符串。 (SSH)
 -0,--http1.0使用HTTP 1.0(H)
     --ignore-content-length忽略HTTP Content-Length头
 -i,--include在输出中包含协议头(H / F)
 -k,--insecure允许连接到没有证书的SSL站点(H)
      - 接口INTERFACE指定要使用的网络接口/地址
 -4,--ipv4将名称解析为IPv4地址
 -6,--ipv6将名称解析为IPv6地址
 -j,--junk-session-cookies忽略从文件读取的会话cookie(H)
      - 休眠时间SECONDS保持性探针之间的间隔
     --key KEY私钥文件名(SSL / SSH)
      - 键型TYPE私钥文件类型(DER / PEM / ENG)(SSL)
     --krb LEVEL启用具有指定安全级别的Kerberos(F)
     --libcurl文件转储libcurl此命令行的等效代码
      - 极限速率限制传输速度到这个速率
 -l,--list-only仅列出FTP目录的名称(F)
      - 本地端口RANGE强制使用这些本地端口号
 -L, - 位置跟随重定向(H)
      - 位置信任(如位置),并发送授权给其他主机(H)
 -M, - 手动显示完整手册
     --mail - 从这个地址FROM邮件
      - mail-rcpt TO Mail to this receiver(s)
     --mail-auth AUTH原始电子邮件的发起人地址
     --max-filesize BYTES要下载的最大文件大小(H / F)
     --max-redirs NUM允许的最大重定向数(H)
 -m, - 最大时间SECONDS允许传输的最长时间
     --metalink将网址定义为metalink XML文件
      - 谈判使用HTTP协商认证(H)
 -n,--netrc必须读取.netrc的用户名和密码
     --netrc可选使用.netrc或URL;覆盖-n
     --netrc-file FILE设置要使用的netrc文件名
 -N,--no-buffer禁止缓冲输出流
     --no-keepalive禁用在连接上的keepalive使用
     --no-sessionid禁用SSL会话ID重用(SSL)
     --noproxy不使用代理的主机列表
     --ntlm

 

输入编码 -f gb2312,输出编码-t utf-8

|grep 检索目标命令

检索 title、meta、content等信息,并显示

curl http://www.qq.com|iconv -f gb2312 -t utf-8| grep -E "(<title>|<meta name=|meta content=)"

 

|iconv 命令

iconv命令是运行于linux平台的文件编码装换工具。当我们在linux系统shell下通过curl命令或者wget命令获取一个网页的源代码,当网页的编码与当前操作系统坏境的设置的编码不同时,就会发现网页中有很多乱码。如在网页"meta"标签"charset"属性值设置为"gb2312"的http://www.baidu.com百度首页,在系统坏境变量"$LANG"值为"en_US.UTF-8"的linux系统即会产生中文乱码现象。这时我们可以尝试使用iconv命令进行编码装换,让中文不在是乱码。如下命令是处理百度在系统坏境变量"$LANG"值为"en_US.UTF-8"的linux系统乱码的问题的解决方案之一:

curlhttp://www.baidu.com|iconv -fgb2312 -t utf-8

当然,你也通过改变系统坏境变量与百度首页的"charset"值一致,也可以解决此乱码问题,如下命令:

set LANG="gb2312"

export LANG

curl http://www.baidu.com

iconv命令的详细语法:

iconv [选项..] [文件..]
选项:
-f 输入编码
-t 输出编码
-l 列出所有已知的编码
-o 输出文件

[[email protected] /]# iconv -h
Usage: iconv [-c] [-s] [-f fromcode] [-t tocode] [file ...]
or:    iconv -l

 

以上是关于curl的主要内容,如果未能解决你的问题,请参考以下文章

CentOS yum 命令出现 [Errno 14] curl#6 - &quot;Couldn&#39;t resolve host ...&quot; 的解决方法(代码片段

有啥方法可以让 curl 连接并让我在输入时输入和发送身体片段?

使用PHP中的curl发送请求

转:PHP中的使用curl发送请求(GET请求和POST请求)

最简单的代码,CURL获取页面

从 curl_exec 获取响应代码、标头和内容