zoukankan      html  css  js  c++  java
  • curl使用

    参考资料:https://gist.github.com/303182519/132568fd0e58cae57202

    • curl使用GET方式请求数据

    下载单个文件,默认将输出打印到标准输出中(STDOUT)中

    curl http://www.centos.org

    指定请求方式

    除了使用GET和POST协议外,还可以通过 -X 选项指定其它协议,如:

    curl -I -X DELETE https://api.github.com

    设置请求头信息

    curl -H 'Accept-Language: zh' http://cnn.com
    

    -H 或被多次指定

    curl -H 'Host: 157.166.226.25'-H 'Accept-Language: zh'-H 'Cookie: ID=1234' http://cnn.com
    

    对于”User-Agent”, “Cookie”, “Host”这类标准的HTTP头部字段,通常会有另外一种设置方法。curl命令提供了特定的选项来对这些头部字段进行设置:

    -A (or —user-agent): 设置 “User-Agent” 字段.

    -b (or —cookie): 设置 “Cookie” 字段.

    -e (or —referer): 设置 “Referer” 字段.

    curl -H "User-Agent: my browser" http://cnn.com
    curl -A "my browser" http://cnn.com
    

    查看响应头信息

    curl -I http://www.baidu.com
    

    提交表单

    curl --form "fileupload=@filename.txt" http://hostname/resource

    通过-o/-O选项保存下载的文件到指定的文件中:

    1. -o:将文件保存为命令行中指定的文件名的文件中
    2. -O:使用URL中默认的文件名保存文件到本地

    同时获取多个文件

    curl -O URL1 -O URL2

    断点续传

    通过使用-C选项可对大文件使用断点续传功能

    对CURL使用网络限速

    通过--limit-rate 100k选项对下载速度限制为100k

    下载指定时间内修改过的文件

    curl -z 21-Dec-11,指定在2011/12/21之后有过更新才会进行下载

    CURL授权

    在访问需要授权的页面时,可通过-u选项提供用户名和密码进行授权

     curl -u username:password URL
    
     # 通常的做法是在命令行只输入用户名,之后会提示输入密码,这样可以保证在查看历史记录时不会将密码泄露
     curl -u username URL
    
    

    从FTP服务器下载文件

    
    

    CURL同样支持FTP下载,若在url中指定的是某个文件路径而非具体的某个要下载的文件名,CURL则会列出该目录下的所有文件名而并非下载该目录下的所有文件

    
    
     # 列出public_html下的所有文件夹和文件
     curl -u ftpuser:ftppass -O ftp://ftp_server/public_html/
    
     # 下载xss.php文件
     curl -u ftpuser:ftppass -O ftp://ftp_server/public_html/xss.php

    上传文件到FTP服务器

    通过 -T 选项可将指定的本地文件上传到FTP服务器上

    # 将myfile.txt文件上传到服务器
    curl -u ftpuser:ftppass -T myfile.txt ftp://ftp.testserver.com
    
    # 同时上传多个文件
    curl -u ftpuser:ftppass -T "{file1,file2}" ftp://ftp.testserver.com
    
    # 从标准输入获取内容保存到服务器指定的文件中
    curl -u ftpuser:ftppass -T - ftp://ftp.testserver.com/myfile_1.txt


    为CURL设置代理

    x 选项可以为CURL添加代理功能

     # 指定代理主机和端口
     curl -x proxysever.test.com:3128 http://google.co.in
    

    保存与使用网站cookie信息

     # 将网站的cookies信息保存到sugarcookies文件中
     curl -D sugarcookies http://localhost/sugarcrm/index.php
    
     # 使用上次保存的cookie信息
     curl -b sugarcookies http://localhost/sugarcrm/index.php
    

    传递请求数据

    默认curl使用GET方式请求数据,这种方式下直接通过URL传递数据 可以通过 --data/-d 方式指定使用POST方式传递数据

    # GET
    curl -u username https://api.github.com/user?access_token=XXXXXXXXXX
    
    # POST
    curl -u username --data "param1=value1&param2=value" https://api.github.com
    
    # 也可以指定一个文件,将该文件中的内容当作数据传递给服务器端
    curl --data @filename https://github.api.com/authorizations
    

    注:默认情况下,通过POST方式传递过去的数据中若有特殊字符,首先需要将特殊字符转义在传递给服务器端,如value值中包含有空格,则需要先将空格转换成%20,如:

    curl -d "value%201" http://hostname.com
    

    在新版本的CURL中,提供了新的选项 --data-urlencode,通过该选项提供的参数会自动转义特殊字符。

    curl --data-urlencode "value 1" http://hostname.com
    

    除了使用GET和POST协议外,还可以通过 -X 选项指定其它协议,如:

    curl -I -X DELETE https://api.github.cim
    

    上传文件

    curl --form "fileupload=@filename.txt" http://hostname/resource
     


  • 相关阅读:
    git工具命令整理
    使用nodeJs操作redis
    electron 7.x 设置开发环境与生产模式 隐藏菜单栏和开发者工具 devtools
    electron 打包问题 解决
    sso单点登录之跨域cookie共享 (跨域缓存共享)
    浏览器线程执行顺序
    JS如何将变量作为一个对象的Key
    DevOps流程的简单总结
    通过key 寻找数组内对象的某一项
    根据key查找对象数组中符合的一项 返回对象(递归)
  • 原文地址:https://www.cnblogs.com/thouger/p/5069622.html
Copyright © 2011-2022 走看看