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
     


  • 相关阅读:
    Android开发总结
    LeakCanary原理分析
    机器学习
    Kivy 中文教程 实例入门 简易画板 (Simple Paint App):2. 实现绘图功能
    Python 零基础 快速入门 趣味教程 (咪博士 海龟绘图 turtle) 3. 循环
    Kivy 中文教程 实例入门 简易画板 (Simple Paint App):1. 自定义窗口部件 (widget)
    Python 零基础 快速入门 趣味教程 (咪博士 海龟绘图 turtle) 2. 变量
    Python 零基础 快速入门 趣味教程 (咪博士 海龟绘图 turtle) 1. 神秘朋友
    Python 零基础 快速入门 趣味教程 (咪博士 海龟绘图 turtle) 0. 准备工作
    远程显示(操作) 服务器 GUI 程序(图形化界面) (基于 X11 Forwarding + Centos + MobaXterm)
  • 原文地址:https://www.cnblogs.com/thouger/p/5069622.html
Copyright © 2011-2022 走看看