• curl 工具使用


    1. POST 请求方式

    HTTP 的 POST 请求通常是用于提交数据,可以通过这篇文章来了解各种提交方式:四种常见的 POST 提交数据方式

    application/x-www-form-urlencoded

    最常见的一种 POST 请求,用 curl 发起这种请求也很简单。

    1
    
    $ curl localhost:3000/api/basic -X POST -d 'hello=world'

      

    multipart/form-data

    这种请求一般涉及到文件上传。后端对这种类型请求的处理也复杂一些。

    1
    
    $ curl localhost:3000/api/multipart -F raw=@raw.data -F hello=world

     

    application/json

    1
    
    $ curl localhost:3000/api/json -X POST -d '{"hello": "world"}' -H "Content-Type: application/json"

    2. 命令选项列表

    -X

    -X参数指定 HTTP 请求的方法。

    $ curl -X POST https://www.example.com

    -H

    -H参数添加 HTTP 请求的标头。

    $ curl -H 'Accept-Language: en-US' -H 'Secret-Message: xyzzy' https://google.com

    上面命令添加两个 HTTP 标头。

    $ curl -d '{"login": "emma", "pass": "123"}' -H 'Content-Type: application/json' https://google.com/login

    上面命令添加 HTTP 请求的标头是Content-Type: application/json,然后用-d参数发送 JSON 数据。

    -d

    -d 参数用于发送 POST 请求的数据体。

    $ curl -d 'login=emma&password=123'-X POST https://google.com/login 
    $ curl -d 'login=emma' -d 'password=123' -X POST https://google.com/login

    使用-d参数以后,HTTP 请求会自动加上标头Content-Type : application/x-www-form-urlencoded。并且会自动将请求转为 POST 方法,因此可以省略-X POST

    -d参数可以读取本地文本文件的数据,向服务器发送。

    $ curl -d '@data.txt' https://google.com/login

    上面命令读取data.txt文件的内容,作为数据体向服务器发送。

    -F

    -F参数用来向服务器上传二进制文件。

    $ curl -F 'file=@photo.png' https://google.com/profile

    上面命令会给 HTTP 请求加上标头Content-Type: multipart/form-data,然后将文件photo.png作为file字段上传。

    -F参数可以指定 MIME 类型。

    $ curl -F 'file=@photo.png;type=image/png' https://google.com/profile

    上面命令指定 MIME 类型为image/png,否则 curl 会把 MIME 类型设为application/octet-stream

    -F参数也可以指定文件名。

    $ curl -F 'file=@photo.png;filename=me.png' https://google.com/profile

    上面命令中,原始文件名为photo.png,但是服务器接收到的文件名为me.png

    -b

    -b参数用来向服务器发送 Cookie。

    $ curl -b 'foo=bar' https://google.com

    上面命令会生成一个标头Cookie: foo=bar,向服务器发送一个名为foo、值为bar的 Cookie。

    $ curl -b 'foo1=bar;foo2=bar2' https://google.com

    上面命令发送两个 Cookie。

    $ curl -b cookies.txt https://www.google.com

    上面命令读取本地文件cookies.txt,里面是服务器设置的 Cookie(参见-c参数),将其发送到服务器。

    -c

    -c参数将服务器设置的 Cookie 写入一个文件。

    $ curl -c cookies.txt https://www.google.com

    上面命令将服务器的 HTTP 回应所设置 Cookie 写入文本文件cookies.txt

    -G

    -G参数用来构造 URL 的查询字符串。

    $ curl -G -d 'q=kitties' -d 'count=20' https://google.com/search

    上面命令会发出一个 GET 请求,实际请求的 URL 为https://google.com/search?q=kitties&count=20。如果省略 -G,会发出一个 POST 请求。

    -k

    -k参数指定 跳过 SSL 检测

    $ curl -k https://www.example.com

    -o

    -o参数将服务器的回应保存成文件,等同于wget命令。

    $ curl -o example.html https://www.example.com

    上面命令将www.example.com保存成example.html

    -O

    -O参数将服务器回应保存成文件,并将 URL 的最后部分当作文件名。

    $ curl -O https://www.example.com/foo/bar.html

    上面命令将服务器回应保存成文件,文件名为bar.html

    -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

    上面命令能够识别 URL 里面的用户名和密码,将其转为上个例子里面的 HTTP 标头。

    $ curl -u 'bob' https://google.com/login

    上面命令只设置了用户名,执行后,curl 会提示用户输入密码。

    参考链接

  • 相关阅读:
    【SpringBoot学习笔记】无法解析parent POM——1.5.3.RELEASE
    【WPF学习日记——[DevExpress]】GridControl 行中使用按钮
    【Web学习日记】——C#引用WebService,从配置文件改变引用地址
    【Web学习日记】——在IIS上发布一个WebService
    【WPF学习日记】——Window的DataContext绑定ViewModel
    使用kubectl管理k8s集群
    使用Kubeadm创建k8s集群之节点部署
    使用Kubeadm创建k8s集群之部署规划
    kubernetes运维
    linux常用命令大全
  • 原文地址:https://www.cnblogs.com/codestarer/p/13640339.html
Copyright © 2020-2023  润新知