使用CURL发送HTTP的请求

使用CURL发送HTTP的请求

 

我们可以把curl当做一个web客户端来使用,发送http的请求和接受相应的应答。

使用

curl "http://www.360converter.com"

如果后面请求的url,上面这个例子中是http://www.360converter.com中没有请求字符串,则可以不用双引号,变成

curl http://www.360converter.com

但是如果有,例如:

curl "http://www.360converter.com?type=video"

则一定要加双引号,否则会出错。什么错呢,你可以自己试试。

 

如果想查看发送了什么样的请求,可以加一个参数 -v

curl -v "http://www.360converter.com"

输出

 POST /0/token HTTP/1.1
 User-Agent: curl/7.33.0
 Host: auth.kanbox.com
 Accept: */*
 Content-Length: 208
 Content-Type: application/x-www-form-urlencoded

 upload completely sent off: 208 out of 208 bytes
 HTTP/1.1 400 Bad Request
 Server Tengine/1.5.1 is not blacklisted
 Server: Tengine/1.5.1
 Date: Fri, 12 Sep 2014 03:51:30 GMT
 Content-Type: application/json
 Transfer-Encoding: chunked
 Connection: keep-alive
 X-Powered-By: PHP/5.2.15
 Cache-Control: no-store

……

 

如果你请求的是https的web,但是对方的证书不是通过CA认证的话,curl拒绝执行请求,这个时候,你可以使用选项 -k 告诉curl忽略它。

curl -v -k "https://www.360converter.com"

 

POST的http

如果post,使用–data选项,

curl -v -k "para1=123&para2=test" "https://www.360converter.com"

 

上传文件

假设你上传文件的form这样写的

<form method="POST" enctype='multipart/form-data' action="upload.cgi">

 <input type=file name=upload>
 <input type=submit name=press value="OK">

</form>

那么你可以使用下面的命令上传文件

curl --data "birthyear=1905&press=OK&person=daniel" [URL]

 

设置http的头

curl –user-agent "Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)"http://www.360converter.com

 

设置cookie

curl --cookie "name=Daniel" http://www.360converter.com

 

参考:

http://curl.haxx.se/docs/httpscripting.html

 

版权所有,禁止转载. 如需转载,请先征得博主的同意,并且表明文章出处,否则按侵权处理.

    分享到:

Leave a Reply

Your email address will not be published. Required fields are marked *