前言

昨天现场的浏览器崩溃了,楼主苦逼,就临时用了curl测试了下图片请求接口。今天总结下。

一.what?

curl is a tool to transfer data from or to a server

curl是用在命令行和脚本进行传输数据到服务器或者从服务器传输数据的工具。

二.特性

  • 支持广泛的协议,如:ftp、http、https、pop3、scp、sftp、telent等
  • 支持SSL证书,HTTP中各方法、cookies、head、authentication
  • 免费开源软件

三.常用应用场景

  • 请求、验证、测试链接
  • 支持连接超时、保活时间设置,支持下载上传速率的配置,支持重试机制等
  • 测试restful接口
  • 上传、下载文件

四.用法

语法:curl [options] [URL...]

参数:

参数 描述
-V 显示当前的curl版本
-# 对发送和接收进行简单的进度bar展示
-0 强制使用HTTP 1.0协议
-1 强制使用TLS version 1.x
-4 解析域名为ipv4地址(域名有多个ip时)
-a FTP/SFTP上传文件时,curl将追加到目标文件,而非覆盖
-A 设置用户代理
-b 设置cookies
--basic 使用HTTP Basic authentication
--compressed 使用curl支持的压缩算法请求压缩的响应, 如果请求的响应不是压缩的,curl抛出异常
--connect-timeout 设置连接超时时间
-d 用于post请求时表单提交数据, 请求类型将被设置为:application/x-www-form-urlencoded
-e 发送"Referer Page"到服务器
-F form表单提交
-G 使用get请求发送 -d参数指定的数据
-H 增加Head头
-i 在输出Head头(响应)
-I 只输出Head头(响应)
--interface 指定使用的网络接口
-k 允许curl使用非安全的ssl连接并且传输数据(证书不受信)
-K 后接参数文件,参数文件中可以定义HTTP请求的相关的内容(URL、HEAD、DATA)
--keepalive-time 设置连接的保活时间
-L curl自动重定向(3xx)
--limit-rate 特指最大的传输速率
-m 设置整个操作的允许消耗的最大时间,对于在延时网络下的批量操作有利
--max-filesize 允许下载文件的最大大小
-N 禁用输出流缓冲区
--no-keepalive 连接不保活
-o 将响应数据输出到指定文件,后接文件参数
--retry 发生瞬时错误时,curl将重试执行数据传输
--retry-delay 延迟重试
--trace dump出输入输出数据至文件
-v 获取更多输入输出相关的内容,对于debug非常有用
-y或者--speed-time 如果在speed-time期间,下载比speed-limit这个更慢,则下载废止
-Y或者--speed-limit 如果在speed-time期间,下载比speed-limit这个更慢,则下载废止

接着看下下面的使用示例:

// 使用-k参数忽略证书不受信问题,-b参数指定cookies,-i参数输出响应头
curl -ki -b "JSESSIONID=011F1B99963D28CF91E90C99A51B1E34; _i18n_locale=zh_CN" --compressed https://10.33.42.149/fas/human/uploadPic.action // -d参数指定post表单的数据, -o参数指定响应内容输出到指定文件
curl -kv -d "name=daniel skill=lou" https://10.33.42.149:443/cas/login -o output // -1指定tls版本1.x,-H指定请求头
curl -1 -ki -e "https://10/33.42.149" -H "X-Custom-Header:lxy" https://10.33.42.149:443/cas/login // -L指定自动重定向
curl -kvL http://10.33.42.149 // -K指定请求的参数配置文件
curl -kvK ex // -e指定Referer
curl -kv -e "https://10/33.42.149" -H "X-Custom-Header:lxy" https://10.33.42.149:443/cas/login

curl用法详解的更多相关文章

  1. linux curl用法详解

    linux ‍‍curl用法详解 ‍‍curl的应用方式,一是可以直接通过命令行工具,另一种是利用libcurl库做上层的开发.本篇主要总结一下命令行工具的http相关的应用, 尤其是http下载方面 ...

  2. Linux Shell脚本入门--wget 命令用法详解

    Linux Shell脚本入门--wget 命令用法详解 wget是在Linux下开发的开放源代码的软件,作者是Hrvoje Niksic,后来被移植到包括Windows在内的各个平台上.它有以下功能 ...

  3. Linux curl 命令详解

    命令概要 该命令设计用于在没有用户交互的情况下工作. curl 是一个工具,用于传输来自服务器或者到服务器的数据.「向服务器传输数据或者获取来自服务器的数据」 可支持的协议有(DICT.FILE.FT ...

  4. C#中string.format用法详解

    C#中string.format用法详解 本文实例总结了C#中string.format用法.分享给大家供大家参考.具体分析如下: String.Format 方法的几种定义: String.Form ...

  5. @RequestMapping 用法详解之地址映射

    @RequestMapping 用法详解之地址映射 引言: 前段时间项目中用到了RESTful模式来开发程序,但是当用POST.PUT模式提交数据时,发现服务器端接受不到提交的数据(服务器端参数绑定没 ...

  6. linux管道命令grep命令参数及用法详解---附使用案例|grep

    功能说明:查找文件里符合条件的字符串. 语 法:grep [-abcEFGhHilLnqrsvVwxy][-A<显示列数>][-B<显示列数>][-C<显示列数>] ...

  7. mysql中event的用法详解

    一.基本概念mysql5.1版本开始引进event概念.event既“时间触发器”,与triggers的事件触发不同,event类似与linux crontab计划任务,用于时间触发.通过单独或调用存 ...

  8. CSS中伪类及伪元素用法详解

    CSS中伪类及伪元素用法详解   伪类的分类及作用: 注:该表引自W3School教程 伪元素的分类及作用: 接下来让博主通过一些生动的实例(之前的作业或小作品)来说明几种常用伪类的用法和效果,其他的 ...

  9. c++中vector的用法详解

    c++中vector的用法详解 vector(向量): C++中的一种数据结构,确切的说是一个类.它相当于一个动态的数组,当程序员无法知道自己需要的数组的规模多大时,用其来解决问题可以达到最大节约空间 ...

随机推荐

  1. jquery库与其他库(比如prototype)冲突的解决方法

    前端开发很容易会遇到jQuery库与其他库冲突的场景,比如和prototype库冲突. 实际上这种冲突是因为不同的第三方JS库争夺对$标识符的控制权引起的. 解决方法,就是使用jQuery提供的jQu ...

  2. Java & Android未捕获异常处理机制

    一.背景 无论是Java还是Android项目,往往都会用到多线程.不管是主线程还是子线程,在运行过程中,都有可能出现未捕获异常.未捕获异常中含有详细的异常信息堆栈,可以很方便的去帮助我们排查问题. ...

  3. Base64和本地以及在线图片互转

    package com.ruoyi.common.utils; import java.io.ByteArrayOutputStream; import java.io.FileInputStream ...

  4. C语言语法教程-链表

    链表是一群结构体(称为结点)通过指针连起来.这种结构体类型,比较特殊,叫自引用结构体类型.它有一个指针指向和和结构体一样的类型,其余是数据成员. 头指针指向第一结点,尾指针一定要用空表示,这叫有头有尾 ...

  5. CSP复赛day2模拟题

    没错,我又爆零了.....先让我自闭一分钟.....so 当你忘记努力的时候,现实会用一记响亮的耳光告诉你东西南北在哪. 好了,现在重归正题: 全国信息学奥林匹克联赛(NOIP2014) 复赛模拟题 ...

  6. c# 开发+MySql数据库

    今天就一个客户端的任务:1.把Excel文件转成特定格式插入到数据库中:2.查出该文件,并且导出Excel文件:3.如果插入数据错误,则把刚插入的数据删除掉.感觉比较简单,可是,墨迹了一天呀....总 ...

  7. 6 Linux用户和用户组管理

    Linux系统是一个多用户多任务的分时操作系统,任何一个要使用系统资源的用户都必须首相像系统管理员申请账号,然后以这个账号身份进入系统 每个用户账号都拥有一个唯一的用户名和各自的口令 用户在登陆时键入 ...

  8. C 语言实现回调函数

    优点 不需要改变调用的主函数,只需添加命令和相应函数. #include "stdio.h" #include "stdlib.h" #include &quo ...

  9. 设置linux代理完成apt-get

    最近ubuntu的服务器被公司关闭了外网使用权限,但是安装软件又需要连接外网,那么就只能通过代理来连接了. 先按照下面的这篇帖子来设置windows端的代理. https://blog.csdn.ne ...

  10. construct2 入门

    construct2特点 construct2是一款跨平台二维游戏开发引擎,不需要编码,通过定义各个部件和事件完成html5的游戏开发.该引擎可以将开发的封装成多种形式,如phonegap.cocoo ...