curl手册

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

cURL.1cURL.1cURL.1cURL.1手册页名称cURL-transferaURL摘要cURL[选项][URL...]描述cURL是一个向服务器或从服务器传输数据的工具,它支持HTTP、HTTPS、FTP、FTPS、SCP、SFTP、TFTP、DICT、TELNET、LDAP或FILE等协议。该命令设计为无需用户干预即可执行。cURL提供了一大堆诸如代理支持、用户认证、FTP上传、HTTPPOST、SSL连接、Cookies、文件续传等等有用的技巧。正如你将在下面看到的,如此多的特性会让你头晕目眩!cURL的所有传输相关特性的是由libcURL所支持。详情见libcURL(3)。URLURLURLURL:URL语法是协议相关的。您可在RFC3986找到详细解释。您可以指定多个URL或在大括号{}内写入URL的一部分形成URL的集合:{one,two,three}.com或者您也可以使用[]获得连续的字母或数字序列:[1-100].txt[001-100].txt(前面带有0的)[a-z].txt目前还不支持嵌套的序列,但是您可以在一条URL中混合使用多个序列:[1996-1999]/vol[1-4]/part{a,b,c}.html您可在命令行中指定任意数量的URL。它们将以指定的顺序被逐一获取。从cURL7.15.1版以来,您也可以指定步长范围,如此您就可以得到所有带第N个数字或字母的URL:[1-100:10].txt[a-z:2].txt如果您指定的URL没有协议://前缀,cURL会尝试猜测您可能需要的协议。默认使用HTTP协议,但会基于常用主机名前缀而尝试使用其它协议。例如,对于以“FTP”开头的主机名称,cURL将假定使用FTP协议。cURL会尝试为多个文件的传输重用连接,从而使从同一台服务器上获取文件不会做多重连接/握手。这种方法提高了速度。当然,这只对在同一命令行中指定的文件有效,而且不能用于单独的cURL之间的调用。进度指示器cURL在操作时通常会显示一个进度指示器,显示已传输的数据量、传输速度和估计剩余时间等。然而,由于cURL默认在终端上显示此数据,如果您调用cURL去做一个向终端写入数据的操作,它将禁用进度指示器,否则它会将进度指示信息与输出的返回数据混淆在一起。如果您需要对应HTTPPOST或PUT请求的进度指示器,您得使用shell的重定向操作符()、-o[文件名]或其他类似的操作,将返回的数据重定向到文件中。这与FTP上传操作不同,该操作不会向终端输出任何响应数据。如果您想用进度“条”代替默认的显示,-#选项会很有帮助。选项对于所有的布尔选项(option),使用--option来启用,使用--no-option来禁用。也就是说,您使用完全相同的选项名称,但须加上前缀“no-”然而,在此列表中,我们通常只会列出并显示它们的--option。(--no-option这个概念是在7.19.0版中添加的。以前大多数选项的开启/关闭是重复使用相同的命令行选项。)-a/--append(FTP/SFTP)当在上传操作中使用时,此选项将告诉cURL将内容附加到目标文件,而不是覆盖它。如果该文件不存在,将创建一个新文件。请注意,此标志将被一些SSH服务器所忽略(包括OpenSSH)。-A/--user-agent用户代理字符串(HTTP)指定用户代理(User-Agent)字符串发送给HTTP服务器。如果这里没有设置为“Mozilla/4.0”,一些设计的不好的CGI程序将不能正常工作。如字符串包含空白字符,则用单引号括出此字符串。此选项也可用-H/--header来设置。如果此选项设置超过一次,将使用最近一次的设置。--anyauth(HTTP)告知cURL自己找出远程站点声明支持的最安全的验证方法并使用之。由发送一个请求并检查response-headers来实现,从而可能诱发额外的网络流量。这是用来代替具体验证方法设定,您可配合--basic、--digest、--ntlm、与--nagotiate使用。请注意,如果您从标准输入(stdin)上传,则不推荐使用--anyauth,因为它可能需要将数据发送两次而且届时客户端必须支持回卷(rewind)。如从标准输入(stdin)上传时出现此需求,上传操作将失败。-b/--cookiename=data(HTTP)将数据作为cookie传递给HTTP服务器。这些数据可能是前次从服务器Set-Cookie行返回的。这些数据应是“NAME1=VALUE1;NAME2=VALUE2”这样的格式。如果在行中没有使用'='符号,那么它将被视为一个保存了前次cookie行的文件名,如果此文件与前次保存的cookie行匹配,则它在此会话中将被读取。使用这种方法也激活会激活cookie解析器,它将使cURL同时记录传入的cookie,这样可方便的与-L/--location选项结合使用。被读取cookie的文件格式应为纯文本的HTTPheaders或Netscape/Mozilla的cookie文件格式。请注意,被-b/--cookie指定的文件只能作为输入使用,没有cookies会被存储在文件中。为了存储cookie,用-c/--cookie-jar选项或您甚至可以用-D/--dump-header选项把HTTPheader保存到文件中!如果此选项设置超过一次,将使用最近一次的设置。-B/--use-ascii当使用FTP或LDAP时启用ASCII传输。使用FTP时,也可以使用一个以;type=A结尾的URL来强制执行此选项。此选项导致数据以文本模式发送到Win32系统的标准输出(stdout)。--basic(HTTP)告知cURL使用HTTP基本验证。这是默认选项,并且该选项通常是无意义的,除非你用它来覆盖先前设置的不同的身份验证方法的选项,(如--ntlm、--digest、或--negotiate)。--ciphers加密方式列表(SSL)具体指定在连接中使用哪些加密方式。列表必须是有效的加密方式。在此网址阅读SSL加密方式列表的细节:加密方式与openssl和GnuTLS不同。NSS加密方式的完整列表在此网址:的NSSCipherSuite条目中。假如此选项已被使用过多次,则最后一次的设置将取代其它的。--compressed(HTTP)使用libcurl支持的一种压缩算法请求一个压缩的响应,并返回解压缩的文档。如果使用此选项并且服务器发送了一个不受支持的压缩方式,cURL将报错。--connect-timeout秒您连接到服务器所允许花费的最大时间,单位为秒。只限于连接阶段,一旦crul已经连接,该选项就不起作用了。又见-m/--max-time选项。假如此选项已被使用过多次,则使用最后一次的设置。-c/--cookie-jar文件名指定您想要cURL完成操作后将所有cookie写入哪个文件中。cURL将写入之前从指定文件中读取的、以及从远程服务器获取的所有cookie。如果无cookie信息,则不会写入文件。该文件将使用Netscape的cookie文件格式。如果您设置文件名为半角单破折号-,这些cookies信息会被写入标准输出(stdout)。注意:如果Cookiejar无法被建立或写入,整个cURL操作不会失败甚至也不会报错。使用-v将得到一个警告显示,但这将是在可能发生致命错误时您唯一可见的反馈。假如此选项已使用过多次,则将使用最后一次指定的文件名。-C/--continue-at偏移地址在指定偏移地址继续/恢复之前的文件传输。给定的偏移地址是一个将被忽略的确切字节数,在源文件传输到目的地之前从文件起始处计算。如果在上传中使用,FTP服务器的SIZE命令将不能用于cURL。使用“-C-”来告知cURL在何处及如何自动恢复传输。然后使用给定的输出/输入文件来做到这一点。假如此选项已被使用过多次,则使用最后一次的设置。--create-dirs配合-o选项使用时,cURL将根据需要建立必要的本地目录结构。此选项会建立在-o选项中提到的目录,除此以外没有其它用途。如果-o选项中涉及的文件名没有使用目录或目录已存在,则不会建立目录。要使用FTP或SFTP创建远程目录时,请使用--ftp-create-dirs选项。--crlf(FTP)在上传时将LF转换为CRLF。在MVS中有用(OS/390)。-d/--data数据(HTTP)将特定数据POST到服务器,与在浏览器中用户填写表单并按提交按钮的效果一样。cURL使用mimetypecontent-typeapplication/x-传输数据到服务器。请与-F/--form比较。-d/--data与--data-ascii相同。如果要post二进制数据,您应该使用--data-binary选项。如果要postURL编码的表单项,您应该采用--data-urlencode。在同一个命令行多次使用该参数,数据块将被&符号合并提交。因此,使用'-dname=daniel-dskill=lousy'后提交的数据是'name=daniel&skill=lousy'。如果您的数据以字符@开头,其余的部分应当是一个用来读取数据的文件名,或者您想要cURL从标准输入(stdin)读取数据。该文件的内容必须是经过URL编码的。也可指定多个文件。比如要post文件foobar,那么格式是--data@foobar。--data-binary数据(HTTP)post二进制数据。如果您的数据以字符@开头,其余的部分应当是个文件名。post的数据使用--data-ascii类似的方式,区别是换行是保留的,未作转换。如果此选项被多次使用,则第一次定义的数据会附加到-d/--data所描述的数据后。--data-urlencode数据(HTTP)与--data选项相同,唯一的差别是要采用url编码。(在7.18.0版加入)要做CGI兼容,数据部分应由name以及其后的分隔符和指定内容组成。该数据部分使用下列语法:content将使cURL使用url-encode编码内容并传递。只是要小心,这样的内容不包含任何=或@符号,所以这将会使语法与下面其他情况相匹配。=content将使cURL使用url-encode编码内容并传递。前面的=号不包含在数据中。name=content将使cURL使用url-encode编码内容部分并传递。请注意,name的部分已经预先经过URL-encoded编码了。@filename将使cURL从给定的文件(包含任何换行符的)中读取数据,URL-encode编码数据并在post时传递给它。name@filename将使cURL从给定的文件(包含任何换行符的)中读取数据,URL-encode编码数据并在post时传递给它。name部分获得相同的附加,致使name=urlencoded-file-content。请注意,name已经预先经过URL-encoded编码了。--digest(HTTP)允许HTTPDigest认证。这是一个避免密码以明文传送的认证。使用此选项与-u/--user选项组合来设置用户名和密码。又见--ntlm、--negot

1 / 26
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功