curl命令详解

curl是一个命令行工具,用于发送HTTP请求和接收HTTP响应。它支持多种协议,包括HTTP、HTTPS、FTP、SMTP等。以下是curl命令的详细解释:

发送GET请求

curl http://www.example.com

这个命令会向http://www.example.com发送一个GET请求,并将响应输出到终端。

发送POST请求

curl -X POST http://www.example.com -d “name=value”

这个命令会向http://www.example.com发送一个POST请求,并将"name=value"作为请求体发送。

发送PUT请求

curl -X PUT http://www.example.com -d “name=value”

这个命令会向http://www.example.com发送一个PUT请求,并将"name=value"作为请求体发送。

发送DELETE请求

curl -X DELETE http://www.example.com

这个命令会向http://www.example.com发送一个DELETE请求。

发送HEAD请求

curl -I http://www.example.com

这个命令会向http://www.example.com发送一个HEAD请求,并输出响应头信息。

发送OPTIONS请求

curl -X OPTIONS http://www.example.com

这个命令会向http://www.example.com发送一个OPTIONS请求,并输出响应头信息。

发送PATCH请求

curl -X PATCH http://www.example.com -d “name=value”

这个命令会向http://www.example.com发送一个PATCH请求,并将"name=value"作为请求体发送。

发送文件

curl -X POST http://www.example.com -F “file=@/path/to/file”

这个命令会向http://www.example.com发送一个POST请求,并将文件/path/to/file作为请求体发送。

设置请求头

curl -H “Content-Type: application/json” http://www.example.com

这个命令会向http://www.example.com发送一个GET请求,并设置请求头Content-Type为application/json。

设置超时时间

curl --connect-timeout 10 http://www.example.com

这个命令会向http://www.example.com发送一个GET请求,并设置连接超时时间为10秒。

输出到文件

curl -o output.txt http://www.example.com

这个命令会向http://www.example.com发送一个GET请求,并将响应输出到文件output.txt。

显示请求和响应头

curl -v http://www.example.com

这个命令会向http://www.example.com发送一个GET请求,并输出请求和响应头信息。

显示进度条

curl -# http://www.example.com

这个命令会向http://www.example.com发送一个GET请求,并显示进度条。

使用代理

curl -x http://proxy.example.com:8080 http://www.example.com

这个命令会向http://www.example.com发送一个GET请求,并使用代理http://proxy.example.com:8080

使用cookie

curl -b “name=value” http://www.example.com

这个命令会向http://www.example.com发送一个GET请求,并设置cookie为"name=value"。

以上是curl命令的详细解释,可以根据需要选择相应的命令进行使用。

发送JSON数据

curl -X POST http://www.example.com -H “Content-Type: application/json” -d ‘{"name": "value"}’

这个命令会向http://www.example.com发送一个POST请求,并将JSON数据{"name": "value"}作为请求体发送。

发送XML数据

curl -X POST http://www.example.com -H “Content-Type: application/xml” -d ‘<name>value</name>’

这个命令会向http://www.example.com发送一个POST请求,并将XML数据<name>value</name>作为请求体发送。

发送表单数据

curl -X POST http://www.example.com -d “name=value&name2=value2”

这个命令会向http://www.example.com发送一个POST请求,并将表单数据"name=value&name2=value2"作为请求体发送。

发送多个文件

curl -X POST http://www.example.com -F “file1=@/path/to/file1” -F “file2=@/path/to/file2”

这个命令会向http://www.example.com发送一个POST请求,并将文件/path/to/file1和/path/to/file2作为请求体发送。

发送多个表单数据

curl -X POST http://www.example.com -F “name=value” -F “name2=value2”

这个命令会向http://www.example.com发送一个POST请求,并将表单数据"name=value"和"name2=value2"作为请求体发送。

发送带有认证信息的请求

curl -u username:password http://www.example.com

这个命令会向http://www.example.com发送一个GET请求,并使用用户名为username、密码为password的认证信息。

发送带有自定义请求方法的请求

curl -X CUSTOM http://www.example.com

这个命令会向http://www.example.com发送一个自定义请求方法的请求。

发送带有自定义请求头的请求

curl -H “Custom-Header: value” http://www.example.com

这个命令会向http://www.example.com发送一个GET请求,并设置自定义请求头Custom-Header为value。

发送带有自定义User-Agent的请求

curl -A “Custom User Agent” http://www.example.com

这个命令会向http://www.example.com发送一个GET请求,并设置User-Agent为Custom User Agent。

发送带有自定义Referer的请求

curl -e “http://www.example.comhttp://www.example.com

这个命令会向http://www.example.com发送一个GET请求,并设置Referer为http://www.example.com