非零基础自学Golang 第17章 HTTP编程(上) 17.5 知识拓展
非零基础自学Golang
文章目录
- 非零基础自学Golang
- 第17章 HTTP编程(上)
- 17.5 知识拓展
- 17.5.1 curl工具详解
第17章 HTTP编程(上)
17.5 知识拓展
17.5.1 curl工具详解
【1】curl 简介
curl是一个利用URL语法在命令行下工作的文件传输工具,于1997年首次发行。它支持文件上传和下载,所以是综合传输工具,但按传统,习惯称curl为下载工具。
curl还包含了用于程序开发的libcurl。
curl支持的通信协议有FTP、FTPS、HTTP、HTTPS、TFTP、SFTP、Gopher、SCP、TELNET、DICT、FILE、LDAP、LDAPS、IMAP、POP3、SMTP和RTSP。
该工具的官网地址为:https://curl.haxx.se。
【2】curl 安装
对于Linux系统而言,系统已默认安装此工具,无须再次安装。
对于Windows系统,大部分发行版本都默认没有安装curl工具,部分系统如Win10已默认安装。
win11 也有
对于没有安装curl工具的系统,可自行下载安装包安装,下载地址为:https://curl.haxx.se/windows/。
这里 笔者就不装了
【3】curl 常见命令
① 查看网页 源码
curl https://curl.se
这是最简单的使用方法,用这个命令获得了https://curl.se指向的页面。
同样,如果这里的URL指向的是一个文件或者一幅图,都可以直接下载到本地。
如果要把这个网页保存下来,可以使用-o参数:
curl https://curl.se -o test.html
打开看看
没毛病
② 显示头信息
-i参数可以显示HTTP的Response的头信息,连同网页代码一起。-I参数则只显示HTTP的Response的头信息。
curl -i https://curl.se
③ 显示通信过程
-v参数可以显示一次http通信的整个过程,包括端口连接和HTTP的Request头信息。
curl -v https://curl.se
④ 发送表单信息
发送表单信息有GET和POST两种方法。GET方法相对简单,只要把数据附在网址后面即可。
curl example.com/form.cgi?data=xxx
POST方法必须把数据和网址分开,curl就要用到–data或者-d参数。
curl -X POST --data "data=xxx" example.com/form.cgi
⑤ 选择使用的请求方法
默认的HTTP请求方法是GET,使用-X参数可以支持其他方法。
curl -X POST https://curl.haxx.se
curl -X PUT https://curl.haxx.se
⑥ 设置UA
–user-agent参数用来表示客户端的设备信息,服务器有时会根据这个字段,针对不同设备返回不同格式的网页,比如手机版和桌面版。
curl --user-agent "[User Agent]" https://curl.se
⑦ 设置Cookie
使用–cookie参数,可以让curl发送Cookie。
curl --cookie "name=xxx" https://curl.se
⑧ 增加头信息
有时需要在HTTP的Request之中自行增加一个头信息,–header参数就可以起到这个作用。
curl --header "Content-Type:application/json" http://example.com