curl

作者: PengFuChuan | 来源:发表于2017-06-27 23:13 被阅读0次

    curl是利用URL语法在命令行方式下工作的开源文件传输工具。作用是发出网络请求,然后得到和提取数据,显示在"标准输出"(stdout)上面,它支持多种协议。

    1、基本用法

    直接在curl命令后加上网址,就可以看到网页源码。

    curl www.baidu.com
    

    回车之后,www.baidu.com 的源码就显示在屏幕上了。

    2、保存页面信息

    保存页面信息有两种方式
    (1)使用linux的重定向功能保存

    curl http://www.baidu.com >> baidu.html
    

    (2)使用curl的内置option:-o(小写)保存网页

    curl -o baidu.html www.baidu.com
    
    3、显示头信息

    -i参数可以显示http response的头信息,连同网页代码一起。-I参数则是只显示http response的头信息。

    curl -i www.baidu.com
    curl -I www.baidu.com
    
    4、发送表单信息

    发送表单信息有GET和POST两种方法。GET方法相对简单,只要把数据附在url后面就行。(linux get方法多个参数需转义&符号)

    curl example.com/index.php?data=xxx\&status=success
    

    POST方法必须把数据和网址分开,curl就要用到--data参数。

    curl -X POST --data "data=xxx" example.com/index.php
    

    如果你的数据没有经过表单编码,还可以让curl为你编码,参数是--data-urlencode

    curl -X POST --data-urlencode "date=test 1" example.com/index.php
    
    5、HTTP动词

    curl默认的HTTP动词是GET,使用-X参数可以支持其他动词。

    curl -X POST www.example.com
    curl -X DELETE www.example.com
    curl -X PUT www.example.com
    
    6、伪造referer(盗链)

    很多服务器会检查http访问的referer从而来控制访问。比如:你是先访问首页,然后再访问首页中的邮箱页面,这里访问邮箱的referer地址就是访问首页成功后的页面地址,如果服务器发现对邮箱页面访问的referer地址不是首页的地址,就断定那是个盗链了
    curl中内置option:-e可以让我们设定referer

    curl -e "www.linux.com" http://mail.linux.com
    

    这样就会让服务器其以为你是从www.linux.com点击某个链接过来的

    7、模仿浏览器(User Agent字段)
    curl -A "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.0)" http://www.linux.com
    

    这样服务器端就会认为是使用IE8.0去访问的

    8、cookie

    使用--cookie参数,可以让curl发送cookie。

    curl --cookie "name=xxx" www.example.com
    

    -c cookie-file可以保存服务器返回的cookie到文件,-b cookie-file可以使用这个文件作为cookie信息,进行后续的请求。

    curl -c cookies http://example.com
    curl -b cookies http://example.com
    
    9、增加头信息

    有时需要在http request之中,自行增加一个头信息。--header参数就可以起到这个作用。

    curl --header "Content-Type:application/json" http://example.com
    
    10、指定proxy服务器以及其端口

    很多时候上网需要用到代理服务器(比如是使用代理服务器上网或者因为使用curl别人网站而被别人屏蔽IP地址的时候),可以通过使用内置option:-x来支持设置代理

    curl -x 192.168.100.100:1080 http://example.com
    

    相关文章

      网友评论

          本文标题:curl

          本文链接:https://www.haomeiwen.com/subject/fchycxtx.html