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++中的一种数据结构,确切的说是一个类.它相当于一个动态的数组,当程序员无法知道自己需要的数组的规模多大时,用其来解决问题可以达到最大节约空间 ...
随机推荐
- javascript时间戳与日期格式的相互转换
这里总结下JavaScript中时间戳和日期格式的相互转换方法(自定义函数). 将时间戳转换为日期格式 function timestampToTime(timestamp) { var date = ...
- R语言构建蛋白质网络并实现GN算法
目录 R语言构建蛋白质网络并实现GN算法 1.蛋白质网络的构建 2.生物网络的模块发现方法 3.模块发现方法实现和图形展示 4.附录:igraph中常用函数 参考链接 R语言构建蛋白质网络并实现GN算 ...
- 想让自己的项目6666,可是 Chrome 不答应!
读万卷书,行万里路!有的技能可以从书里学会,有的技能却需要在实战中打怪升级慢慢掌握,今天就来和大家聊一个很多小伙伴经常遇到的问题. 缘起 有人向松哥反映,在搭建微服务分布式配置中心 Spring Cl ...
- 从 SOA 到微服务,企业分布式应用架构在云原生时代如何重塑?
作者 | 易立 阿里云资深技术专家 导读:从十余年前的各种分布式系统研发到现在的容器云,从支撑原有业务到孵化各个新业务,企业的发展离不开统一的.与时俱进的技术架构.本篇文章从企业分布式应用架构层面介绍 ...
- 基于贝叶斯网(Bayes Netword)图模型的应用实践初探
1. 贝叶斯网理论部分 笔者在另一篇文章中对贝叶斯网的理论部分进行了总结,在本文中,我们重点关注其在具体场景里的应用. 2. 从概率预测问题说起 0x1:条件概率预测模型之困 我们知道,朴素贝叶斯分类 ...
- AspNet Core使用Mysql一些问题及解决方案
本文假设的你的AspNet Core 2.2的Web程序通过EntityFrameworkCore连接使用MSSQL数据库,能正常使用. 如何想转为使用Mysql,其实不难. 1.安装Mysql这个简 ...
- C# FastReport .NET打印
引用DLL : FastReport.dll FastReport.Report sender = new FastReport.Report(); try { sender.Load("f ...
- tkinter事件键盘绑定
tkinter事件键盘绑定 from tkinter import * root=Tk() #创建一个框架,在这个框架中响应事件 frame=Frame(root, width=200,height= ...
- [转]Java游戏引擎
JME(jMonkey Engine): JME是一个高性能的3D图形API,采用LWJGL作为底层支持.它的后续版本将支持JOGL.JME和Java 3D具有类似的场景结构,开发者必须以树状方式组织 ...
- MYSQL入门操作和常规DML、DDL、DQL使用
刷新权限,将某些权限从硬盘刷新到内存中(修改root密码自带隐式刷新权限操作) mysql> flush privileges; Query OK, 0 rows affected (0.00 ...