使用curl

curl 是一种使用URL从服务器获取数据或者向服务器传输数据的工具。在做一些简单的请求测试的时候可以直接在命令行执行curl指令,而不用打开Postman之类的App,减少一些操作步骤。

curl支持的协议有很多,比如HTTPHTTPSWSWSS等,本文以HTTP协议的URL为例说明一些用法。

  1. 简单的GET请求:
shell 复制代码
$ curl http://localhost:8080/hello
hello world!
  1. 使用-X--request)指定请求方法:
shell 复制代码
$ curl -X POST localhost:8080/user/login

不使用-X默认是GET请求。

  1. 使用-i--include)将响应头中的数据打印出来:
shell 复制代码
$ curl -i -X GET "localhost:8080/echo?name=孙悟空&address=花果山水帘洞"
HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-8
Date: Thu, 14 Dec 2023 13:32:03 GMT
Content-Length: 60
​
{"data":{"name":"孙悟空","address":"花果山水帘洞"}}                                         
  1. 使用-v--verbose)打印出一些冗长的信息,调试的时候可以使用:
shell 复制代码
curl -v localhost:8080/孙悟空/987fbc97-4bed-5078-9f07-9141ba07c9f3
*   Trying 127.0.0.1:8080...
* Connected to localhost (127.0.0.1) port 8080 (#0)
> GET /%e5%ad%99%e6%82%9f%e7%a9%ba/987fbc97-4bed-5078-9f07-9141ba07c9f3 HTTP/1.1
> Host: localhost:8080
> User-Agent: curl/7.88.1
> Accept: */*
> 
< HTTP/1.1 200 OK
< Content-Type: application/json; charset=utf-8
< Date: Fri, 15 Dec 2023 03:13:17 GMT
< Content-Length: 73
< 
* Connection #0 to host localhost left intact
{"data":{"id":"987fbc97-4bed-5078-9f07-9141ba07c9f3","name":"孙悟空"}}
  1. 使用-d--data)在POST请求中携带数据:
shell 复制代码
$ curl -X POST -d '{"name": "孙悟空", "address": "花果山水帘洞"}' localhost:8080/echo \
>  -H "Content-Type:application/json"
{"data":{"name":"孙悟空","address":"花果山水帘洞"}}

或者:

shell 复制代码
$ curl -X POST -d "name=孙悟空&address=花果山水帘洞" localhost:8080/echo
{"data":{"name":"孙悟空","address":"花果山水帘洞"}}

因为GET的数据是在url中携带的,所以直接这样请求:

shell 复制代码
$ curl -i -X GET "localhost:8080/echo?name=孙悟空&address=花果山水帘洞"
  1. 使用-H--header) 设置请求头:
shell 复制代码
$ curl -X POST -d '{"name": "孙悟空", "address": "花果山水帘洞"}' localhost:8080/echo \
>  -H "Content-Type:application/json"
{"data":{"name":"孙悟空","address":"花果山水帘洞"}}
  1. -F--form)模拟用户按下提交按钮后填写的表单,使用-F后的Content-Typemultipart/form-data
shell 复制代码
$ curl -X POST localhost:8080/upload \
> -F "upload=@/Users/path/上传用的文件.txt"
1 files uploaded!
相关推荐
ShareBeHappy_Qin18 天前
Linux 命令—— ping、telnet、curl、wget(网络连接相关命令)
linux·curl·telnet·wget·ping·网络连接命令
命运之手2 个月前
【Git】修复Git RPC Failed HTTP 500 curl 22错误
git·http·rpc·curl·500·22
unix2linux3 个月前
Parade Series - json - jq
python·ubuntu·json·curl·jq
NPE~4 个月前
Golang操作ES全系列(olivere & curl操作es)
elasticsearch·golang·curl·oblivere
Orangejuz5 个月前
windows 11 之 下载安装 curl
curl
Mr.codeee6 个月前
网络库-libcurl介绍
网络·c++·开源·curl
暮冬十五6 个月前
Docker 容器中 PHP 使用 Curl 访问本地服务异常
docker·容器·php·curl
Apifox6 个月前
理解 cURL 命令的用途和工作原理
后端·api·curl
亿牛云爬虫专家7 个月前
超越常规:用PHP抓取招聘信息
网络爬虫·php·求职招聘·爬虫代理·curl·动态代理·代理ip
云计算练习生7 个月前
Linux进阶篇:文件传输工具curl命令详解
linux·运维·服务器·centos·curl·文件传输