curl https://www.baidu.com
上面命令向 www.example.com
发出 GET
请求,服务器返回的内容会在命令行输出。
-H
-H
参数添加 HTTP
请求的标头。
curl -H 'Accept-Language: en-US' https://www.baidu.com
添加多个标头
curl -H 'Accept-Language: en-US' -H 'Secret-Message: xyzzy' https://www.baidu.com
-b
-b
参数用来向服务器发送 Cookie
。
curl -b 'foo=bar' https://www.baidu.com
发送多个 Cookie
。
curl -b 'foo1=bar' -b 'foo2=baz' https://www.baidu.com
读取本地文件 cookies.txt
curl -b cookies.txt https://www.baidu.com
-c
-c
参数将服务器设置的 Cookie
写入一个文件
curl -c cookies.txt https://www.baidu.com
-d
-d
参数是用来发送数据的。这个参数通常用于 HTTP 请求中,尤其是用于发送 POST 请求
- 发送简单的数据:
curl -d "param1=value1¶m2=value2" http://example.com/resource
- 发送文件内容:
curl -d '@filename.txt' http://example.com/resource
- 设置 Content-Type: 默认情况下,使用
-d
发送的数据会被curl
当作application/x-www-form-urlencoded
类型。如果你需要发送 JSON 数据,可以这样做:
curl -d '{"key1":"value1", "key2":"value2"}' -H "Content-Type: application/json" http://example.com/resource
记住,使用 -d
参数的 curl
命令会自动设置 HTTP 请求方式为 POST。如果你需要使用其他 HTTP 方法(比如 PUT),你需要使用 -X
参数来明确指定。
-F
-F
参数用来向服务器上传二进制文件。
curl -F 'file=@photo.png' https://www.baidu.com/profile
-F
参数可以指定 MIME
类型。
curl -F 'file=@photo.png;type=image/png' https://www.baidu.com/profile
-F
参数也可以指定文件名。
curl -F 'file=@photo.png;filename=me.png' https://www.baidu.com/profile
-G
-G
参数用来构造 URL
的查询字符串。
curl -G -d 'q=kitties' -d 'count=20' https://www.baidu.com/search
上面命令会发出一个 GET
请求,实际请求的 URL 为 https://google.com/search?q=kitties&count=20
。如果省略 --G
,会发出一个 POST
请求。
如果数据需要 URL
编码,可以结合 --data--urlencode
参数。
curl -G --data-urlencode 'comment=hello world' https://www.example.com
--data-urlencode
--data-urlencode
参数等同于 -d
,发送 POST
请求的数据体,区别在于会自动将发送的数据进行 URL
编码。
$ curl --data-urlencode 'comment=hello world' https://www.baidu.com/login
上面代码中,发送的数据 hello world
之间有一个空格,需要进行 URL
编码。
-i
-i
参数打印出服务器回应的 HTTP
标头。
$ curl -i https://www.baidu.com
-k
-k
参数指定跳过 SSL
检测。
$ curl -k https://www.baidu.com
-L
-L
参数会让 HTTP
请求跟随服务器的重定向。curl
默认不跟随重定向。
curl -L -d 'api=test' https://www.example.com/api
-o
-o
参数将服务器的回应保存成文件,等同于 wget
命令。
curl -o example.html https://www.example.com
-O
-O
参数将服务器回应保存成文件,并将 URL
的最后部分当作文件名,下面命令将服务器回应保存成文件,文件名为 bar.html
。
curl -O https://www.example.com/foo/bar.html
-s
-s
参数将不输出错误和进度信息。
curl -s https://www.example.com
-S
-S
参数指定只输出错误信息,通常与 -s
一起使用。
curl -Ss /dev/null https://google.com
-u
-u
参数用来设置服务器认证的用户名和密码。
curl -u 'bob:12345' https://google.com/login
上面命令设置用户名为 bob
,密码为 12345
,然后将其转为 HTTP
标头 Authorization: Basic Ym9iOjEyMzQ1
。
curl
能够识别 URL
里面的用户名和密码。
curl https://bob:12345@google.com/login
-v
-v
参数输出通信的整个过程,用于调试。
curl -v https://www.example.com
--trace
参数也可以用于调试,还会输出原始的二进制数据。
curl --trace - https://www.example.com
-x
-x
参数指定 HTTP
请求的代理。
curl -x http://127.0.0.1:1087 www.google.com
-X
-X
参数指定 HTTP
请求的方法
curl -X POST https://www.example.com
原文链接:
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于