curl用法
简介
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用法的更多相关文章
- linux curl用法详解
linux curl用法详解 curl的应用方式,一是可以直接通过命令行工具,另一种是利用libcurl库做上层的开发.本篇主要总结一下命令行工具的http相关的应用, 尤其是http下载方面 ...
- CURL 用法记录
CURL 用法记录 在工作中经常需要用到curl 命令,记录一下常用的场景 Send a POST Request with JSON Data curl -d '{"login" ...
- Ubuntu命令--CURL用法
curl命令是个功能强大的网络工具,支持通过http.ftp等方式下载文件.上传文件.还可以用来抓取网页.网络监控等方面的开发,解决开发过程中遇到的问题. 常用参数curl命令参数很多,这里只列出我曾 ...
- linux的curl用法【转】
每分钟访问云签到任务执行页面.顺便记录了下curl的用法.以下内容摘自阮一峰博客. 一.查看网页源码 直接在curl命令后加上网址,就可以看到网页源码.我们以网址www.sina.com为例(选择该网 ...
- curl用法详解
前言 昨天现场的浏览器崩溃了,楼主苦逼,就临时用了curl测试了下图片请求接口.今天总结下. 一.what? curl is a tool to transfer data from or to a ...
- Linux命令CURL用法
Curl是一个命令行方式下传输数据的开源传输工具,支持多种协议包括:FTP,HTTP,HTTPS,IMAP,POP3,TELNET等.同样支持HTTP POST方法,PUT方法,FTP上传,cooki ...
- 【Curl】【转】curl用法!
curl基础用法! www.ruanyifeng.com/blog/2019/09/curl-reference.html
- shell神器curl命令的用法 curl用法实例笔记
shell神器curl命令的用法举例,如下: ##基本用法(配合sed/awk/grep) $curl http://www.jquerycn.cn ##下载保存 $curl http://www.j ...
- php curl用法
curl 是使用URL语法的传送文件工具,支持FTP.FTPS.HTTP HTPPS SCP SFTP TFTP TELNET DICT FILE和LDAP.curl 支持SSL证书.HTTP POS ...
随机推荐
- Android基础_3 Activity相对布局
相对布局要比前面讲的线性布局和表格布局要灵活一些,所以平常用得也是比较多的.相对布局控件的位置是与其周围控件的位置相关的,从名字可以看出来,这些位置都是相对的,确定出了其中一个控件的位置就可以确定另一 ...
- 求强连通分量模板(tarjan算法)
关于如何求强连通分量的知识请戳 https://www.byvoid.com/blog/scc-tarjan/ void DFS(int x) { dfn[x]=lowlink[x]=++dfn_cl ...
- erlang reduction
“首先明确一点,Erlang的process的调度是抢占式的,而非couroutine的协作式的.其次,Erlang早期版本是只有一个调度器,运行在一个线程上,随着erts的发展,现在erlang的调 ...
- mysql使用经验总结
在工作中难免会遇到一些这个问题那个问题,当然在mysql中也不例外.今天就让我们来学学mysql中一些比较常用的东西 . 1.有时我们想去查某张表中的字段,但是表中的数据多,字段也很多,如果用sel ...
- CMake实践(2)
一,本期目标: [~@localhost t2]$ cat README this is README├── CMakeLists.txt├── COPYRIGHT├── doc│ └── hel ...
- 修改Oracle 表空间名称 tablespace name
修改表空间名称步骤如下: 1. 使用oracle用户登录执行 $sqlplus / as sysdba 2. 执行修改表空间命令如下 SQL> alter tablespace TEST re ...
- lightoj 1023
题意:让你输出前N个大写字母的前K个排列,按字典序,很水,直接dfs. #include<cstdio> #include<string> #include<cstrin ...
- HDU 4911 Inversion
http://acm.hdu.edu.cn/showproblem.php?pid=4911 归并排序求逆对数. Inversion Time Limit: 2000/1000 MS (Java/ ...
- duilib List控件,横向滚动时列表项不移动或者移动错位的bug的修复
转载请说明出处,谢谢~~ 这篇博客已经作废,只是留作记录,新的bug修复博客地址:http://blog.csdn.net/zhuhongshu/article/details/42264673 之前 ...
- 国内外开源与 SaaS ,团队协作平台、项目管理工具整理
整理一些开源与 SaaS ,团队协作平台.项目管理工具.还有哪些比较好的工具,可以推荐下? 名称 地址 备注 asana https://asana.com/ 国外 basecamp https:// ...