curl用法详解
前言
昨天现场的浏览器崩溃了,楼主苦逼,就临时用了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用法详解的更多相关文章
- linux curl用法详解
linux curl用法详解 curl的应用方式,一是可以直接通过命令行工具,另一种是利用libcurl库做上层的开发.本篇主要总结一下命令行工具的http相关的应用, 尤其是http下载方面 ...
- Linux Shell脚本入门--wget 命令用法详解
Linux Shell脚本入门--wget 命令用法详解 wget是在Linux下开发的开放源代码的软件,作者是Hrvoje Niksic,后来被移植到包括Windows在内的各个平台上.它有以下功能 ...
- Linux curl 命令详解
命令概要 该命令设计用于在没有用户交互的情况下工作. curl 是一个工具,用于传输来自服务器或者到服务器的数据.「向服务器传输数据或者获取来自服务器的数据」 可支持的协议有(DICT.FILE.FT ...
- C#中string.format用法详解
C#中string.format用法详解 本文实例总结了C#中string.format用法.分享给大家供大家参考.具体分析如下: String.Format 方法的几种定义: String.Form ...
- @RequestMapping 用法详解之地址映射
@RequestMapping 用法详解之地址映射 引言: 前段时间项目中用到了RESTful模式来开发程序,但是当用POST.PUT模式提交数据时,发现服务器端接受不到提交的数据(服务器端参数绑定没 ...
- linux管道命令grep命令参数及用法详解---附使用案例|grep
功能说明:查找文件里符合条件的字符串. 语 法:grep [-abcEFGhHilLnqrsvVwxy][-A<显示列数>][-B<显示列数>][-C<显示列数>] ...
- mysql中event的用法详解
一.基本概念mysql5.1版本开始引进event概念.event既“时间触发器”,与triggers的事件触发不同,event类似与linux crontab计划任务,用于时间触发.通过单独或调用存 ...
- CSS中伪类及伪元素用法详解
CSS中伪类及伪元素用法详解 伪类的分类及作用: 注:该表引自W3School教程 伪元素的分类及作用: 接下来让博主通过一些生动的实例(之前的作业或小作品)来说明几种常用伪类的用法和效果,其他的 ...
- c++中vector的用法详解
c++中vector的用法详解 vector(向量): C++中的一种数据结构,确切的说是一个类.它相当于一个动态的数组,当程序员无法知道自己需要的数组的规模多大时,用其来解决问题可以达到最大节约空间 ...
随机推荐
- 彩虹表(rainbow table)
前记 MD5的全称是Message-Digest Algorithm 5(信息-摘要算法): 特点是不可逆的,一般解密不了:那有没有想过,为什么各种工具网站都可以进行MD5解密呢?https://ww ...
- linux服务器的SSH 配置
远程连接服务器: 就是通过文字或图形接口的方式来远程登陆另外一台服务器系统,让你在远程的终端前面登陆linux 主机以取得可操作主机的接口 主要的远程连接服务器的主要类型: 1)文字接口明文传输 : ...
- SSM基本配置详解
需要查看SSM基本依赖和完整配置文件的到:SSM基本配置及依赖 示例项目:SSMDemo 1 Spring IOC容器配置 1.1 applicationContext.xml 1.1.1 配置数据源 ...
- System.Windows.Forms.Control.CheckForIllegalCrossThreadCalls = false
多线程程序中,新创建的线程不能访问UI线程创建的窗口控件,这时如果想要访问窗口的控件,发现无法对其控制. 这时可将窗口构造函数中的CheckForIllegalCrossThreadCalls设置为f ...
- 【C#】Winform 令人困擾的畫面閃爍問題解法
DoubleBuffered = true 如果 Control 沒有這個屬性,可以使用我下列擴充函式進行設定︰ public static void SetDoubleBuffered<T&g ...
- 强化Linux 服务器的7个步骤
这篇入门文章将向你介绍基本的 Linux 服务器安全知识.虽然主要针对 Debian/Ubuntu,但是你可以将此处介绍的所有内容应用于其他 Linux 发行版.我也鼓励你研究这份材料,并在适用的情况 ...
- Kubernetes CNI网络插件
CNI 容器网络接口,就是在网络解决方案由网络插件提供,这些插件配置容器网络则通过CNI定义的接口来完成,也就是CNI定义的是容器运行环境与网络插件之间的接口规范.这个接口只关心容器的网络连接,在创建 ...
- 不懂APS系统?十个问答让你对APS瞬间明明白白
本文为您解答APS自动排程系统导入中客户常见的问题,帮助您评估企业是否适合导入APS,并了解需要的人力和资金的投入. Q1:哪些企业需要导入APS? A1: 编制生产计划有困难的企业都可以开始考虑导入 ...
- 记MacOS抹盘后--使用U盘安装MacOS实录
背景 纯属一时手贱,本想重装系统,结果直接把磁盘抹了,然后联网安装死活安不上.但这里仍然附上联网安装方法: 按键 描述 ⌘+R 重新安装您的 Mac 上装有的最新 macOS(建议操作). Optio ...
- SqlServer数据库之递归
递归的实现比较简单,这里就直接贴SQL了. --简单创建一个用户表 CREATE TABLE User( UserID ,) , ParentUserID INT ) 假设这张有几千条数据,开始递归它 ...