简介

curl是一个和服务器交互信息(发送和获取信息)的命令行工具,支持DICT, FILE, FTP, FTPS, GOPHER, HTTP, HTTPS, IMAP, IMAPS, LDAP, LDAPS, POP3, POP3S, RTMP, RTSP, SCP, SFTP, SMTP, SMTPS, TELNET和TFTP等协议。curl支持代理、用户认证、FTP上传、HTTP POST请求、SSL连接、cookies、文件传输、Metalink等功能。

URL

curl支持如下几种方式的URL:

可以指定多个url,或者在花括号中指定url的多个部分。

http://site.{one,two,three}.com

可以用中括号指定数字或字母序列。

ftp://ftp.numericals.com/file[1-100].txt
ftp://ftp.numericals.com/file[001-100].txt (with leading zeros)
ftp://ftp.letters.com/file[a-z].txt

可以指定多个序列。

http://any.org/archive[1996-1999]/vol[1-4]/part{a,b,c}.html

可以在命令行指定任意数量的url,curl会按指定顺序获取url的内容。

可以在一个范围内指定跳跃的步数。

http://www.numericals.com/file[1-100:10].txt
http://www.letters.com/file[a-z:2].txt

如果没有指定协议前缀,curl会尝试猜测协议。它默认会选择http协议,但是当遇见常用的host名字时,会选择尝试其他协议。例如ftp.xxx.com,curl会尝试ftp协议。

查看http响应头

curl -i http://www.baidu.com

查看交互过程

curl -v http://www.baidu.com

GET请求

当发起http请求时,curl会默认发起GET请求,也可以"-X GET"方式指定。

curl -X GET http://www.baidu.com

POST请求

当使用POST请求方式,需要通过指定“-d”,向服务器传递数据。

curl -X POST http://www.example.com/posts

DELETE请求

DELETE请求用于删除服务器端的数据。

curl -X DELETE http://www.example.com/posts/1

PUT请求

PUT请求用于修改服务器端的数据

curl -X PUT http://www.example.com/posts/1

HTTP认证

常用的HTTP认证方式有:Basic认证、Digest认证、OAuth2认证。

Basic认证

curl --basic  -u user:password http://www.example.com/posts/1

Digest认证

curl --digest -u user:password http://www.example.com/posts/1

OAuth2认证

curl -u clientId:clientSecret -X POST -d "username=test&password=test&grant_type=password&scope=read" http://www.example.com/oauth/token
curl -H "Authorization: Bearer [bearer]" http://www.example.com/posts/1

文件上传

假定文件上传的表单如下所示:

<form method="POST" enctype='multipart/form-data' action="upload.cgi">
<input type=file name=upload>
<input type=submit name=press value="OK">
</form>

可使用curl按如下方式上传文件:

curl --form upload=@localfilename --form press=OK http://www.example.com

User Agent字段

这个字段用来表示客户端的设备信息。服务器有时会根据这个字段,针对不同的设备,返回不同格式的网页,比如移动端和PC端。

curl --user-agent "[user agent]" http://www.example.com

cookie

curl可以发送cookie

curl --cookie "name1=value1" http://www.example.com

下载网页

curl -o file.html http://www.example.com

-O选项可以按照服务器的文件名保存文件

curl -O http://www.example.com/1.jpg

代理服务器

curl -x 代理服务器地址:端口 http://www.example.com

保存cookie信息

curl -D cookiefile01.txt http://www.example.com

使用保存cookie信息的文件

curl -D cookiefile02.txt -b cookiefile01.txt http://www.example.com

输出详细的交互信息

curl http://www.example.com --trace-ascii /dev/stdout

curl用法的更多相关文章

  1. linux curl用法详解

    linux ‍‍curl用法详解 ‍‍curl的应用方式,一是可以直接通过命令行工具,另一种是利用libcurl库做上层的开发.本篇主要总结一下命令行工具的http相关的应用, 尤其是http下载方面 ...

  2. CURL 用法记录

    CURL 用法记录 在工作中经常需要用到curl 命令,记录一下常用的场景 Send a POST Request with JSON Data curl -d '{"login" ...

  3. Ubuntu命令--CURL用法

    curl命令是个功能强大的网络工具,支持通过http.ftp等方式下载文件.上传文件.还可以用来抓取网页.网络监控等方面的开发,解决开发过程中遇到的问题. 常用参数curl命令参数很多,这里只列出我曾 ...

  4. linux的curl用法【转】

    每分钟访问云签到任务执行页面.顺便记录了下curl的用法.以下内容摘自阮一峰博客. 一.查看网页源码 直接在curl命令后加上网址,就可以看到网页源码.我们以网址www.sina.com为例(选择该网 ...

  5. curl用法详解

    前言 昨天现场的浏览器崩溃了,楼主苦逼,就临时用了curl测试了下图片请求接口.今天总结下. 一.what? curl is a tool to transfer data from or to a ...

  6. Linux命令CURL用法

    Curl是一个命令行方式下传输数据的开源传输工具,支持多种协议包括:FTP,HTTP,HTTPS,IMAP,POP3,TELNET等.同样支持HTTP POST方法,PUT方法,FTP上传,cooki ...

  7. 【Curl】【转】curl用法!

    curl基础用法! www.ruanyifeng.com/blog/2019/09/curl-reference.html

  8. shell神器curl命令的用法 curl用法实例笔记

    shell神器curl命令的用法举例,如下: ##基本用法(配合sed/awk/grep) $curl http://www.jquerycn.cn ##下载保存 $curl http://www.j ...

  9. php curl用法

    curl 是使用URL语法的传送文件工具,支持FTP.FTPS.HTTP HTPPS SCP SFTP TFTP TELNET DICT FILE和LDAP.curl 支持SSL证书.HTTP POS ...

随机推荐

  1. Android基础_3 Activity相对布局

    相对布局要比前面讲的线性布局和表格布局要灵活一些,所以平常用得也是比较多的.相对布局控件的位置是与其周围控件的位置相关的,从名字可以看出来,这些位置都是相对的,确定出了其中一个控件的位置就可以确定另一 ...

  2. 求强连通分量模板(tarjan算法)

    关于如何求强连通分量的知识请戳 https://www.byvoid.com/blog/scc-tarjan/ void DFS(int x) { dfn[x]=lowlink[x]=++dfn_cl ...

  3. erlang reduction

    “首先明确一点,Erlang的process的调度是抢占式的,而非couroutine的协作式的.其次,Erlang早期版本是只有一个调度器,运行在一个线程上,随着erts的发展,现在erlang的调 ...

  4. mysql使用经验总结

    在工作中难免会遇到一些这个问题那个问题,当然在mysql中也不例外.今天就让我们来学学mysql中一些比较常用的东西  . 1.有时我们想去查某张表中的字段,但是表中的数据多,字段也很多,如果用sel ...

  5. CMake实践(2)

    一,本期目标: [~@localhost t2]$ cat README this is README├── CMakeLists.txt├── COPYRIGHT├── doc│   └── hel ...

  6. 修改Oracle 表空间名称 tablespace name

    修改表空间名称步骤如下: 1. 使用oracle用户登录执行 $sqlplus / as sysdba 2. 执行修改表空间命令如下 SQL> alter tablespace  TEST re ...

  7. lightoj 1023

    题意:让你输出前N个大写字母的前K个排列,按字典序,很水,直接dfs. #include<cstdio> #include<string> #include<cstrin ...

  8. HDU 4911 Inversion

    http://acm.hdu.edu.cn/showproblem.php?pid=4911   归并排序求逆对数. Inversion Time Limit: 2000/1000 MS (Java/ ...

  9. duilib List控件,横向滚动时列表项不移动或者移动错位的bug的修复

    转载请说明出处,谢谢~~ 这篇博客已经作废,只是留作记录,新的bug修复博客地址:http://blog.csdn.net/zhuhongshu/article/details/42264673 之前 ...

  10. 国内外开源与 SaaS ,团队协作平台、项目管理工具整理

    整理一些开源与 SaaS ,团队协作平台.项目管理工具.还有哪些比较好的工具,可以推荐下? 名称 地址 备注 asana https://asana.com/ 国外 basecamp https:// ...