Linux - curl 基本使用
2024-10-08 09:58:21
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, 写的很详细, 但都是英文.
最新文章
- WEB安全隐患
- PHP 分页函数
- Mybatis学习记录(六)----Mybatis的高级映射
- Brief introduce to Iometer
- Java 继承详解
- 数据结构(分块):[HZOI 2015]easy seq
- Android传感器概述(六)
- Check whether a given Binary Tree is Complete or not 解答
- 【COCOS2DX-对28游戏开发】 Cocos2d-x-3c 道路设计 CocosBase CocosNet CocosWidget
- 数据结构读书笔记(三)(C语言)
- VB与报表的交互
- Eclipse运行Java简单实例
- 【整理】Java 9新特性总结
- ASM ClassReader failed to parse class file - probably due to a new Java class file version that isn&#39;t supported yet………
- 【Mybatis】一对一实例
- EFI环境下的Ubuntu&;Win10双系统安装
- mysql 存储过程 游标嵌套
- Linux让git记住账号密码
- Spark优化之gc
- java多线程之间的顺序问题