curl命令可以方便的调试接口,发送网络请求。
1.简介
curl
- transfer a URL
curl is a tool to transfer data from or to a server, using one of the supported protocols (DICT, FILE, FTP, FTPS,GOPHER, HTTP, HTTPS, IMAP, IMAPS, LDAP, LDAPS, POP3, POP3S, RTMP, RTSP, SCP, SFTP, SMB, SMBS, SMTP, SMTPS, TELNET and TFTP).
curl offers a busload of useful tricks like proxy support, user authentication, FTP upload, HTTP post, SSL connections, cookies, file transfer resume, Metalink, and more.
格式如下:
以下将使用http://requestb.in/1g31nxf1?inspect
作为测试URL,在request.bin网站上可以看到每次请求的全部内容,方便测试。
2.GET
如果不加任何参数,那么将会使用GET方法发送http请求。
例如:
这样就是一个最简单的GET请求,不包含任何参数和头信息。
下面加一些请求参数:
3.POST
curl中是使用-d
或者--data
命令来添加数据的。
进而发送一个POST请求。
默认的Content-Type是
这里的urlencoded的意思就是需要把请求参数中的特殊符号转化为%XX那种ascii码。如value值中包含有空格,则需要先将空格转换成%20。
在新版本的CURL中,提供了新的选项 –data-urlencode,通过该选项提供的参数会自动转义特殊字符。
举例:
这样,body中就是
我们来换一种:
这样,body中就是
等同于
我们还可以先把body数据写入文件
中,然后使用-d发出去,如下:
我们拿到的body是:
换一个内容:
拿到的body是:
也就是
4.添加头信息
使用-H
或者--header
来添加头信息,注意使用:
连接key和value。
例如:
5.HEAD
使用-I
会发送HEAD请求,只会获取头信息。
例如
可以在request.bin上看到发送了HEAD请求。
如果是在发送GET或者POST请求是看返回的头信息,可以使用-i
参数。
可以看到,会发送POST请求,同时看到了返回的头信息。
6.PUT
使用-T
会发送PUT请求上传文件。
例如:
可以在request.bin上看到发送了PUT请求,body是
7.Cookie
使用-b
参数设置cookie信息。
例如:
注意,使用=
连接key和value,然后使用;
分隔多个cookie。
8.输出相应参数
使用-w
可以输出相应变量的参数。
例如
9.使用代理
假如代理服务器ip是125.86.166.89,端口是23564,类型是https,那么使用代理发送GET请求:
默认是使用http协议。
有时候代理需要加认证,需要携带头信息:
10.下载
|
|
其中-R(--remote-time)
参数用来解析远程文件时间戳,-O(--remote-name)
用来将远程文件保存到本地,名字取自url。