Linux - curl 基本使用
1. 概述
我接触过的很多服务端调试, 接口测试, 最终都落到了这个地方
简答介绍 curl 的使用
- 尽量循序渐进, 因为我也不太熟悉
大概会提到的命令
- curl
- curl -v
- curl -s
- curl -i
- curl -X
- curl -H
- curl -d
2. curl
- CommandLine Uniform Resource Locator
- 官网
https://curl.haxx.se/
- 特性
- 这个就不多说
- 毕竟它在我手上, 也只是一个简单的 命令行 工具
3. 命令
帮助
# 这个命令如果能运行, 说明 机器上确实有 curl
# 具体内容不少, 建议在对 curl 有一定认知之后, 再去尝试阅读
> curl --help
简单模式 与 繁琐模式
简单模式
命令
# curl 访问 url 的时候, 建议带上协议
# 如果不带的话, 默认是 http
> curl 'http://www.baidu.com'
结果
返回
# 勉强对齐了一下
# 结果类似一个表格, 前两行是表头, 最后一行, 是结果
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 2381 100 2381 0 0 50659 0 --:--:-- --:--:-- --:--:-- 50659
# 后面是 baidu 的html, 就不列举了
不好意思, 这个统计信息, 留个坑吧
如果不想要这个统计信息, 可以使用 以下命令
> curl -s 'http://www.baidu.com'
繁琐模式
命令
> curl -v 'http://www.baidu.com'
结果
返回
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0* Trying 61.135.169.121...
* TCP_NODELAY set
* Connected to www.baidu.com (61.135.169.121) port 80 (#0) # 这一部分, 是 请求
> GET / HTTP/1.1
> Host: www.baidu.com
> User-Agent: curl/7.63.0
> Accept: */*
> # 这一部分, 是响应
< HTTP/1.1 200 OK
< Accept-Ranges: bytes
< Cache-Control: private, no-cache, no-store, proxy-revalidate, no-transform
< Connection: Keep-Alive
< Content-Length: 2381
< Content-Type: text/html
< Date: Fri, 16 Aug 2019 12:48:41 GMT
< Etag: "588604c4-94d"
< Last-Modified: Mon, 23 Jan 2017 13:27:32 GMT
< Pragma: no-cache
< Server: bfe/1.0.8.18
< Set-Cookie: BDORZ=27315; max-age=86400; domain=.baidu.com; path=/
<
{ [2381 bytes data]
100 2381 100 2381 0 0 74406 0 --:--:-- --:--:-- --:--:-- 74406 # 这一行, 是请求页面的内容, 略 # 这一行是啥, 我也不太清楚了
* Connection #0 to host www.baidu.com left intact如果你只关心 返回
则可以使用以下命令
> curl -i 'http://www.baidu.com'
请求方式
命令
> curl -vs -X GET 'http://www.baidu.com'
结果
- 和 繁琐模式 基本一致
- 默认的请求方法, 是 GET
- GET 可以换成其他的方法
请求头
命令
> curl -is -X GET -H 'Content-Type: text/html' 'http://www.baidu.com'
请求体
命令
> curl -vs -X GET -H 'Content-Type: text/html' -d '{"key": "value"}' 'http://www.baidu.com'
4. 最后
感觉讲得不太好
其实这些命令, 可以一笔带过
- 基本就是请求, 看request, 看response, 定请求方式, 设置 request header, 设置 request body
相关的东西, 想讲讲又不知道怎么开始
- http 相关
- curl 结果
- 那个统计
- 比如 verbose 模式下的连接过程
这玩意其实可以用的地方有很多
- 有机会, 会尝试做些其他的讲解.
ref
- curl使用指南
- 官网上有本书, 叫做 everything-curl, 写的很详细, 但都是英文.
Linux - curl 基本使用的更多相关文章
- linux curl 命令详解,以及实例
linux curl是一个利用URL规则在命令行下工作的文件传输工具.它支持文件的上传和下载,所以是综合传输工具,但按传统,习惯称url为下载工具. 一,curl命令参数,有好多我没有用过,也不知道翻 ...
- Linux curl使用简单介绍
在两台新搬迁的微信服务器上执行命令: curl -H "Content-Type: application/json" -d '{"partner_no":&q ...
- linux curl用法详解
linux curl用法详解 curl的应用方式,一是可以直接通过命令行工具,另一种是利用libcurl库做上层的开发.本篇主要总结一下命令行工具的http相关的应用, 尤其是http下载方面 ...
- Linux curl命令参数详解
笔者出处:http://www.aiezu.com/system/linux/linux_curl_syntax.html linux curl是通过url语法在命令行下上传或下载文件的工具软件,它支 ...
- Linux curl命令参数详解--转载
linux curl是通过url语法在命令行下上传或下载文件的工具软件,它支持http,https,ftp,ftps,telnet等多种协议,常被用来抓取网页和监控Web服务器状态. 一.Linux ...
- LINUX curl GET 掉参数解决办法
LINUX curl GET 掉参数解决方法 url 为 http://mywebsite.com/index.php?a=1&b=2&c=3web形式下访问url地址,使用 $_GE ...
- Linux Curl常用命令使用【转】
Curl是Linux下一个很强大的http命令行工具,其功能十分强大. 1)读取网页 $ curl linuxidc.com">http://www.linuxidc.com 2)保存 ...
- Linux curl命令使用代理、以及代理种类介绍(转)
Linux curl命令使用代理.以及代理种类介绍 本文转自http://aiezu.com/article/linux_curl_proxy_http_socks.html,感谢作者 有时出于个 ...
- Linux curl 网络访问
Linux curl 网络访问 参数详解 -a/--append 上传文件时,附加到目标文件 -A/--user-agent <string> 设置用户代理发送给服务器 -anyauth ...
- Linux Curl命令
一.简介 linux curl是一个利用URL规则在命令行下工作的文件传输工具.它支持文件的上传和下载,所以是综合传输工具,但按传统,习惯称url为下载工具. 二.安装 wget http://c ...
随机推荐
- 从ASCII到Unicode再到UTF-8的历史原由
编码 大小 支持语言 ASCII 1个字节 英文 Unicode 2个字节(生僻字4个) 所有语言 UTF-8 1-6个字节,英文字母1个字节,汉字3个字节,生僻字4-6个字节 所有语言 具体解释: ...
- 修复ThinkPHP导出excel数字过大时显示为科学记数法
修复ThinkPHP导出excel数字过大时显示为科学记数法,这种显示对于查看的用户来说是及其不友好的.所以,我们要使其转化为正常的数字串! 我在google 的过程中,查了一些资料.其中 1).// ...
- C++——动态内存分配3
动态创建多维数组 new 类型名T[下标表达式1][下标表达式2]…: 如果内存申请成功,new运算返回一个指向新分配内存首地址的指针,是一个T类型的数组,数组元素的个数为除最左边一维外各维下标表达 ...
- RN开发-windows环境搭建
1.安装jdk,sdk,C++运行环境(cygwin,Windows SDK,mingw),node.js和git 2.设置全局使用指定的镜像 打开git-cmd.exe ...
- 四、CentOS 7安装Oracle JDK
CentOS 7安装Oracle JDK,查看Linux是否自带的JDK,如有openJDK,则卸载 CentOS7.1 JDK安装 1.卸载自带OPENJDK 用 java -version ...
- 服务器上搭建使用SSH账户登录的Git仓库
1.安装git yum install -y git 2.创建git仓库保存的目录 mkdir /data/git_repo 3.初始化空仓库 cd /data/git_repogit init -- ...
- Visual detection of structural changes in time-varying graphs using persistent homology
PKU blog about this paper Basic knowledge: 1. what is time-varying graphs? time-varying graph VS st ...
- LitElement(四)属性
1.概述 LitElement管理您声明的属性及其对应的属性.默认情况下,LitElement将: 确保在任何声明的属性更改时进行元素更新. 捕获已声明属性的实例值.在浏览器注册自定义元素定义之前设置 ...
- MySql -- default 默认约束
常用数据库约束: 一.default 默认约束: 二.not null:非空约束,指定某列不为NULL: 三.unique:唯一约束,指定某列和几列组合的数据不能重复: 四.primary key:主 ...
- 总结下抽象类Abstract和虚方法Virtual(易混点)
1.普通类中可以有普通方法和虚方法,在被继承时,虚方法可以选择重写(override)或者不重写 2.抽象类中可以有普通方法和虚方法和抽象方法,当被继承时 如下 1.普通方法不能被子类重写 2.虚方法 ...