1. curl 安装和使用介绍
curl 命令是一个在 Linux 系统中利用 URL 工作的命令行文件传输工具,常用于服务访问和文件下载。curl 支持 HTTP、HTTPS、FTP 等多种协议(默认是 HTTP 协议),可用于模拟服务请求以及上传和下载文件。
1.1 安装命令
并非所有系统都自带 curl 命令,对于简洁版的 Linux 系统,可以使用命令安装: yum install curl
,安装完成后,使用 curl --version
查看版本信息。
1.2 简单使用
- curl 命令的标准语法:
curl [options] [url]
- 不使用参数项执行请求:
curl http://www.baidu.com
- 不使用参数时会直接请求指定的服务地址,并将请求结果源代码输出到命令行中。
1.3 使用参数项
如测试接口是否正常: curl -o /dev/null -s -w %{http_code} http://www.baidu.com
2. 使用 curl 模拟 GET/POST 请求
2.1 模拟 GET 请求
2.2 模拟 POST 请求
- -X :指定请求方式(如 POST)
- -H :指定请求头信息(如 “Content-Type:application/json”)
- –d :指定请求参数内容(可以使用多次,或一次指定多个参数,甚至传递 json 对象;还可以使用文件作为参数)
### 指定地址、请求头信息、请求类型、请求参数
curl 'http://localhost:8080/cnd_inke/qc/v2/inke'
-H "Content-Type:application/json"
-H 'Authorization:bearer'
-X POST
-d '{"Id":"12330245","visitTimes":1,"docType":"散文","docId":"36e5854f5f0e4f80b7ccc6c52c063243"}'
2.3 发送 json 数据
使用 POST 请求体是 json 格式数据,使用 -d 参数可以指定 json 字符串;也可以将数据放在 json 文件中,然后引用文件作为参数。
### test.json 文件存储 json 字符串
curl 'http://localhost:8080/cnd_inke/qc/v2/inke'
-H "Content-Type:application/json"
-H 'Authorization:bearer'
-X POST
-d ’@/test.json'
2.4 携带 Cookies
- 使用 -D 参数保存请求的 Cookies:
curl -o page1.html -D cookie.txt http://www.baidu.com
- 模拟浏览器请求并保存 Cookies:
curl -A "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)" -o page.html -D cookie.txt http://mydomain.net
- 请求时携带 Cookie:
curl -b cookie.txt http://www.baidu.com
3. 使用 curl 上传和下载文件
3.1 文件上传
使用 -F
参数上传文件: curl -F 'file=@test.png;type=image/png' http://www.baidu.com/upload
3.2 文件下载
Curl 下载文件时使用 -O 选项,默认使用网络文件的名字作为本地文件名。
文件下载方式有:
- 可以使用重定向保存到指定文件: … >> index.html
- 如果想要为下载的文件指定名称,则使用
-o
代替-O
,curl -o file2.pdf www.example.com/file.pdf
-#
,显示下载进度和速度等信息,可使用 -s 关闭显示--limit-rate
,设置下载时最大下载速度,如--limit-rate 1m
- 使用
-C
参数可以设置开启断点续传
curl http://mirrors.163.com/centos/8.1.1911/isos/x86_64/CentOS-8.1.1911-x86_64-dvd1.iso
批量下载文件
- curl 还支持下载多个文件,只需要多次指定 -O 和文件地址即可,如
curl -O [URL1] -O [URL2] -O [URL3] ...
- 如果多个文件地址符合规律,可以使用正则来批量下载:
curl -O ftp://ftp.example.com/file[1-30].jpg
4. curl 使用 ip 代理请求服务
4.1 设置代理信息
curl 命令还可以使用 -x
参数来设置 http(s) 代理、socks 代理,设置用户名、密码、认证信息方式如下
# 使用HTTP代理访问;如果未指定端口,默认使用8080端口;
# protocol 默认为 http_proxy,其他可能的值包括:
# http_proxy、HTTPS_PROXY、socks4、socks4a、socks5;
# 如: --proxy 8.8.8.8:8080; -x "http_proxy://aiezu:123@aiezu.com:80"
-x host:port
-x [protocol://[user:pwd@]host[:port]
--proxy [protocol://[user:pwd@]host[:port]
4.2 使用 ip 代理示例
# 指定 http 代理 IP 和端口
curl -x 113.185.19.192:80 http://baidu.com
#显式指定为 http 代理
curl -x http_proxy://113.185.19.192:80 http://baidu.com
#指定 https 代理
curl -x HTTPS_PROXY://113.185.19.192:80 http://baidu.com
#指定代理用户名和密码,basic 认证方式
curl -x aiezu:123456@113.185.19.192:80 http://baidu.com
curl -x 113.185.19.192:80 -U aiezu:123456 http://baidu.com
#指定代理协议、用户名和密码,basic 认证方式
curl -x HTTPS_PROXY://aiezu:123456@113.185.19.192:80 http://baidu.com
#指定代理用户名和密码,ntlm 认证方式
curl -x 113.185.19.192:80 -U aiezu:123456 --proxy-ntlm http://baidu.com
原文地址:https://blog.csdn.net/grammer_du/article/details/130451087
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.7code.cn/show_30214.html
如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱:suwngjj01@126.com进行投诉反馈,一经查实,立即删除!