curl: 命令行的Http协议工具

@ 2009-06-07 20:05:42
标签:

    cURL 是一个用来进行HTTP访问的命令(和函数库)。用cURL可以模拟浏览器对特定的网站进行通信。

    下面是cURL的一些常用用法。

    GET 数据
    curl -G -d "name=value"
    
    POST 数据
    curl -d "param_a=value_a&param_b=value_b" -d @filename
    
    • Content-Type: application/x-www-form-urlencoded
    • @filename 表示读取文件内容作为POST的数据。数据应该是URL编码过的
    模拟表单提交
    curl -F "name=value" -F "upload=@filename" -F "text=<filename"
    
    • Content-Type: multipart/form-data (RFC 2388)
    • @filename 表示上传文件
    • < filename 表示读取文件内容 (filename前不允许有空格)
    DELETE 请求
    curl -X DELETE $url
    
    Cookie
    • 指定Cookie:curl -b "cookie_a=value_a;cookie_b=value_b"
    • 读取Cookie:curl -b "cookie.txt"
    • 保存Cookie:curl -c cookie.txt
    • 模拟一个Session:curl -b cookie.txt -c cookie.txt

    cookie文件内容是一行行tab字符分隔的cookie内容:

    # Netscape HTTP Cookie File
    # http://www.netscape.com/newsref/std/cookie_spec.html
    # This file was generated by libcurl! Edit at your own risk.
    
    $server FALSE   /       FALSE   0       $name        $value
    
    Follow Redirect (Location Header)
    curl -L $url
    
    • Following Redirect 默认是关闭的。
    输出
    • 指定文件名:curl -o file.html $url
    • 使用服务器端的名字:curl -O $url
    Header
    • 输出Header:curl -i $url
    • 保存Header:curl -D header.txt
    • 添加Header:curl -H “X-Request-By: AJAX"
    指定客户端标识
    curl -A "Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.4; en-US; rv:1.9.0.10) Gecko/2009042315 Firefox/3.0.10"
    
    使用配置文件
    curl -K curl.cfg
    
    # Comment Line
    url = http://noyesno.net/
    -d "param_a=value_a"
    

    Tips

    URL Encoding

    需要对字符串进行URL编码的时候,可以使用下面的命令:

    perl -p -e 's/([^\w\d\-\.])/sprintf("%%%02X", ord($1))/seg' input.txt
    

    网络资源

    标签:

      分享到:
      comments powered by Disqus

      34/37ms