Linux 中 当环境中已经具备 curl 工具时可以使用,在 Linux 操作系统中经常用来测试网络和url的联通性,模拟正常的网络访问

一般指令选项

  1. 只获得对方的响应首部信息
    curl -I http://xxxxxxxx.xxx

  2. 显示一次HTTP请求的通信过程,请求内容包括请求头和请求内容等详细信息
    curl -v http://xxxxxxxx.xxx

  3. 执行 GET/POST/PUT/DELETE 操作

-X 后加指定方式去请求
curl -X PUT www.baidu.com
curl -X DELETE www.baidu.com
curl -X POST www.baidu.com
curl -X GET www.baidu.com

  1. 连接超时时间用 –connect-timeout 参数指定;数据传输最大允许时间用 -m 参数来指定
    curl -connect-timeout 100 -m 20 “http://xxxxxxxx.xxx/”

  2. 上传和下载
    curl -o [文件名] www.xxx.xxxx

上传
curl -T [文件名] ftp://user:pwd@ip/docs

下载
curl -O ftp://user:pwd@ip/filename

-o 和 -O 区别:
小写 o 是保存到命令中指定的文件名,大写 O 是使用 URL 中的文件名

curl -w 是一个命令行选项,用于指定在执行完HTTP请求之后,curl命令应该如何输出关于本次请求的统计信息。这里的 -w 代表 --write-out 的简写形式,后面可以跟上一个格式字符串来定义你想要显示的信息内容。

例如,你可以使用以下命令来获取一个HTTP请求的耗时、HTTP状态码等信息:

curl -w "\nHTTP代码:%{http_code}\n耗时:%{time_total}s\n" -o /dev/null -s https://example.com

在这个例子中:

  • \n 表示换行。
  • %{http_code} 会被替换为HTTP响应的状态码。
  • %{time_total} 会被替换为从发送请求到接收到最终一个字节的时间总和(以秒为单位)。
  • -o /dev/null 表示将下载的内容丢弃,不输出到终端。
  • -s--silent 选项表示静默模式,不显示进度信息等,默认情况下curl会显示这些信息。

通过定制这个格式字符串,你可以让curl输出更多关于请求的详细统计信息,这对于调试和性能分析非常有用。

curl 发送 post 请求

当你需要使用curl命令发送一个POST请求,并且需要指定自定义的请求头和请求体时,可以按照以下格式构造命令:

示例1:发送JSON格式的数据

如果想发送JSON格式的数据作为请求体,并且添加特定的请求头,比如Content-Type设置为application/json,可以这样做:

curl -i -H "Content-Type: application/json" -X POST -d '{"key1":"value1", "key2":"value2"}' http://example.com/api/endpoint

在这个例子中:

  • -i 参数表示输出HTTP响应头信息。
  • -H "Content-Type: application/json" 添加了一个请求头,指定内容类型为JSON。
  • -X POST 指定了请求方法为POST。
  • -d '{"key1":"value1", "key2":"value2"}' 指定了请求体内容为JSON格式的数据。

示例2:发送表单数据

如果你需要发送表单数据作为请求体,并且指定Content-Typeapplication/x-www-form-urlencoded,命令如下:

curl -i -H "Content-Type: application/x-www-form-urlencoded" -X POST -d 'field1=value1&field2=value2' http://example.com/submit

这里:

  • -d 'field1=value1&field2=value2' 指定了请求体内容为URL编码的表单数据。

请根据实际需求替换http://example.com/api/endpoint和请求体中的具体内容。

curl 发送GET 请求,携带请求头

下面是一个简单的 curl GET 请求的基本示例,这个请求没有额外的请求头,直接获取一个URL的内容:

curl http://example.com

如果你想获取一个URL并查看响应的头部信息,可以使用 -I-head 选项:

curl -I http://example.com

如果需要向GET请求添加请求头,例如添加用户代理字符串和接受语言,可以这样做:

curl -H "User-Agent: MyCustomUserAgent/1.0" -H "Accept-Language: en-US,en;q=0.9" http://example.com

这里,-H 用于添加自定义请求头,第一个是设置用户代理字符串,第二个是告诉服务器客户端优先接受英语内容。

记得将 http://example.com 替换成你实际想要请求的URL。

携带部分参数
实下面是一个示例,展示如何使用curl命令发送一个带有自定义请求头的GET请求:

curl -i -H "Authorization: Bearer your-token-here" "http://example.com/api/resource?param1=value1&param2=value2"

在这个例子中:

  • -i 参数让curl输出HTTP响应头信息,有助于调试。
  • -H "Authorization: Bearer your-token-here" 添加了一个自定义请求头,这里示例为Bearer令牌认证。
  • "http://example.com/api/resource?param1=value1&param2=value2" 是请求的URL,其中param1=value1&param2=value2是通过查询字符串传递的参数。

添加多个请求头

在使用 curl 命令时,如果需要添加多个请求头,你可以通过多次使用 -H--header 选项来实现。每个 -H 后面跟一个请求头字段及其值,格式为 Header-Name: Header-Value。下面是一个示例,展示如何添加多个请求头到一个 curl GET 请求中:

curl -i -H "Authorization: Bearer your-token" -H "Accept: application/json" -H "Custom-Header: CustomValue" "http://example.com/api/data"

在这个示例中:

  • -H "Authorization: Bearer your-token" 添加了用于认证的授权头。
  • -H "Accept: application/json" 指定了客户端愿意接受的响应内容类型。
  • -H "Custom-Header: CustomValue" 是一个自定义请求头,你可以根据需要替换为任何自定义的头部名称和值。
  • "http://example.com/api/data" 是目标URL。

同样的规则也适用于 POSTPUT 等其他HTTP方法,只需将 -X 选项用于指定请求方法,并根据需要添加 -d--data 选项来指定请求体。

Logo

更多推荐