curl常用参数详解及示例

简介: curl是一个开源的命令行工具,它基于网络协议,对指定URL进行网络传输,得到数据后不任何具体处理(如:html的渲染等),直接显示在"标准输出"(stdout)上。

curl简介

curl是一个开源的命令行工具,它基于网络协议,对指定URL进行网络传输,得到数据后不任何具体处理(如:html的渲染等),直接显示在"标准输出"(stdout)上。

curl支持的网络协议有很多,包括:DICT、FILE、FTP、FTPS、GOPHER、GOPHERS、HTTP、HTTPS、IMAP、IMAPS、LDAP、LDAPS、MQTT、POP3、POP3S、RTMP、RTMPS、RTSP、SCP、SFTP、SMB、SMBS、SMTP、SMTPS、TELNET和TFTP。

curl的参数也有很多,下面介绍一些常用的参数,建议收藏保存。

发送GET请求

当curl不带有任何参数时,curl默认发出 GET 请求,服务端返回的内容不会做任何解析直接在命令行显示。示例:

curl http://www.csdn.net

因为需要跳转到HTTPS,所以返回301:

<html>
<head><title>301 Moved Permanently</title></head>
<body>

301 Moved Permanently

<hr>

openresty

</body> </html>

发送POST请求

使用-d参数时,header的Content-Type被自动赋值为application/x-www-form-urlencoded,并且发送 POST 请求。示例:

 curl -d 'user=万猫学社&pwd=onemore' http://csdn.net/login

因为需要跳转到HTTPS,同样返回301:

<html>
<head><title>301 Moved Permanently</title></head>
<body>

301 Moved Permanently

<hr>

openresty

</body> </html>

发送json请求

发送json请求还需要用到两个参数:-X参数指定 HTTP 请求的方法,-H参数指定 HTTP 请求的header。示例:

curl -X POST -H "Content-Type: application/json; charset=UTF-8" -d '{"user":"万猫学","pwd":"onemore"}' http://www.csdn.net/login

其中,-X参数指定 HTTP 请求的方法为 POST,-H蚕食指定header的 Content-Type 为 application/json; charset=UTF-8 ,-d参数指定数据为 {"user":"万猫学","pwd":"onemore"} 。

显示HTTP响应头

-i参数显示服务端响应内容的同时,也显示HTTP响应头。示例:

curl -i http://www.csdn.net

会先显示服务端的响应头,然后空一行,再显示服务端响应内容,如下:

HTTP/1.1 301 Moved Permanently
Server: openresty
Date: Thu, 20 Jan 2022 11:59:42 GMT
Content-Type: text/html
Content-Length: 166
Connection: keep-alive
Keep-Alive: timeout=20
Location: https://www.csdn.net/

<html>
<head><title>301 Moved Permanently</title></head>
<body>

301 Moved Permanently

<hr>

openresty

</body> </html>

显示响应过程

-v参数显示的整个响应过程,我们可以看到底层到底发生了什么。示例:

curl -v http://www.csdn.net

显示如下:

* About to connect() to www.csdn.net port 80 (#0)
*   Trying 39.106.226.142...
* Connected to www.csdn.net (39.106.226.142) port 80 (#0)
> GET / HTTP/1.1
> User-Agent: curl/7.29.0
> Host: www.csdn.net
> Accept: */*
> 
< HTTP/1.1 301 Moved Permanently
< Server: openresty
< Date: Thu, 20 Jan 2022 12:07:40 GMT
< Content-Type: text/html
< Content-Length: 166
< Connection: keep-alive
< Keep-Alive: timeout=20
< Location: https://www.csdn.net/
< 
<html>
<head><title>301 Moved Permanently</title></head>
<body>

301 Moved Permanently

<hr>

openresty

</body> </html>

其中,以*开头的行表示curl提供的额外信息,以>开头的行表示请求头, <开头的行表示响应头。

只显示响应头

有时候响应内容太长,只关心响应头时,可以使用-I参数。示例:

curl -v http://www.csdn.net

显示如下:

HTTP/1.1 301 Moved Permanently
Server: openresty
Date: Thu, 20 Jan 2022 12:15:30 GMT
Content-Type: text/html
Content-Length: 166
Connection: keep-alive
Keep-Alive: timeout=20
Location: https://www.csdn.net/
参考链接:
https://curl.se/docs/manpage.html
https://www.ruanyifeng.com/blog/2019/09/curl-reference.html
相关文章
debian11换源
直接编辑 /etc/apt/sources.list 文件
1938 0
|
Web App开发 域名解析 缓存
如何在 Ubuntu 20.04 上安装 Node.js 和 npm
本文我们主要为大家介绍在 Ubuntu 20.04 上安装 Node.js 和 npm 的三种不同的方式。
169971 7
如何在 Ubuntu 20.04 上安装 Node.js 和 npm
|
Docker 容器
docker如何在容器外执行容器内命令
有时候我们想执行某个容器的某条命令,但又不想进入容器内。那该怎么办? 所以就有一种办法,我们直接在容器外执行容器内的命令,来进行一些容器内的操作。
3118 0
docker如何在容器外执行容器内命令
|
机器学习/深度学习 JSON 算法
智能零售柜商品检测软件(Python+YOLOv5深度学习模型+清新界面)
智能零售柜商品检测软件(Python+YOLOv5深度学习模型+清新界面)
1582 0
|
Ubuntu 开发工具
Ubuntu更换阿里云软件源
Ubuntu更换阿里云软件源
146412 0
|
缓存 Linux 开发工具
CentOS 7- 配置阿里镜像源
阿里镜像官方地址http://mirrors.aliyun.com/ 1、点击官方提供的相应系统的帮助 :2、查看不同版本的系统操作: 下载源1、安装wget yum install -y wget2、下载CentOS 7的repo文件wget -O /etc/yum.
270880 0
|
NoSQL Redis 数据库
Redis 图形化界面下载及使用超详细教程(带安装包)! redis windows下客户端下载
文章提供了Redis图形化界面工具的下载及使用教程,包括如何连接本地Redis服务器、操作键值对、查看日志和使用命令行等功能。
3892 0
Redis 图形化界面下载及使用超详细教程(带安装包)! redis windows下客户端下载
|
NoSQL 中间件 Java
字节面试:聊聊 CAP 定理?哪些中间件是AP? 哪些是CP? 说说 为什么?
45岁老架构师尼恩在其读者交流群中分享了关于CAP定理的重要面试题及其解析,包括CAP定理的基本概念、CAP三要素之间的关系,以及如何在分布式系统设计中权衡一致性和可用性。文章还详细分析了几种常见中间件(如Redis Cluster、Zookeeper、MongoDB、Cassandra、Eureka、Nacos)的CAP特性,并提供了高端面试技巧,帮助读者在面试中脱颖而出。尼恩还推荐了其团队编写的《尼恩Java面试宝典PDF》等资料,助力求职者准备面试,提升技术水平。
|
存储 Kubernetes 应用服务中间件
Ingress-Nginx使用指南上篇
关于Ingress-Nginx在Kubernetes中的使用指南,涵盖了从基础安装到高级特性配置的详细步骤和实战案例。
5672 3
Ingress-Nginx使用指南上篇

热门文章

最新文章

下一篇
开通oss服务