curl不等待响应_Restful API 吹的五大三粗,为啥我用不起来?缺一样工具

引言

程序开发我们免不了要与其他系统,或者与第三方软件数据提供商进行数据交互。一般的最佳实践就是使用API进行。那么在初期开发的时候,如何快速的测试接口的使用方式,或者快速的定位故障。有没有比较便捷的工具呢?

408d28362ea5919f3d1ab10c7c2328be.png

今天我们要说的就是 curl 指令。这个工具非常强大。几乎提供了一个浏览器。对于接口调试所拥有的各项功能,而且各大编程语言所使用的底层网络请求库,通过它来实现的。

本文通过接口调试中常见的几种协议和传参方式,向大家介绍 curl 的快速用法。

HTTP网络请求参数

HTTP网络请求一般会有下面四个常用参数:

  • endpoint - 这是客户端用于与服务器通信的URL。
  • method - 它告诉服务器客户端想要执行什么操作。最常用的方法有GET、POST、PUT、DELETE和PATCH。
  • header - 用于在服务器和客户端之间传递附加信息,如授权。
  • body - 发送到服务器的数据。

curl 用法

最基本的用法像下面这样。

curl [options] [URL...]

其中 options 部分一般常用的有:

  • -X, --request - 请求方法
  • -i, --include - 包含响应体的header
  • -d, --data - 发送的数据
  • -H, --header - 额外的头信息

HTTP GET 请求

GET 是 curl 默认的请求方式,用于从服务器获取指定的资源。比如从目标服务器获取内容:

curl https://example.com/posts

或者根据需要传递 query string 查询参数:

curl https://example.com/post?id=4820

HTTP POST 请求

一般用于把数据推送给服务器用于更新操作。传递的参数体(form-data)使用 -d 选项指定:

curl -X POST -d "userId=5&title=Hello World&body=Post body." https://example.com/posts

因为是表单提交,传送给服务器的数据体有可能很大,需要经过编码分块后传输,那么此时需要在头部指定类型。比如 curl 默认使用 Content-Type: application/x-www-form-urlencoded 头部编码方式。所有的数据会使用 urlencode 进行编码。

如果我们传递的是一个 json 结构体的字符串,可以手动指定:

curl -X POST -H "Content-Type: application/json" -d '{"userId": 5, "title": "Hello World", "body": "Post body."}' https://example.com/posts

HTTP PUT 请求

一般用于更新服务器上的数据,或者替换已存在数据。这是约定俗成的一种做法。

比如下面的例子,更新指定 post_id = 5 的数据:

curl -X PUT -d "userId=5&title=Hello World&body=Post body." https://example.com/posts/5

HTTP PATCH 请求

上一节中的 PUT 请求,更新整体数据。如果仅是更新一条数据的某个字段,或一部分字段,可以选用 PATCH 方式:

curl -X PATCH -d "title=Hello Universe" https://example./posts/5

HTTP DELETE 请求

增删改查就剩下删除没说了,当然是用 DELETE 方法。从服务器移除已存在的资源。

curl -X DELETE https://example.com/posts/5

授权访问

如果API端点需要身份验证,则需要获取访问密钥。否则,API服务器将以“禁止访问”或“未经授权”的响应消息进行响应。获取访问密钥的过程取决于使用的API。

一旦拿到授权 token,就可以像下面这样请求:

curl -X GET -H "Authorization: Bearer {ACCESS_TOKEN}" "https://api.server.io/posts"

写在最后

如果大家调试过微信公众号,应该对上面所使用的方法以及授权过程不会陌生。这是行业惯例以及API最佳实践。

使用 curl 的好处是我们可以随心所欲地随时调试,而不必构建一套程序。

Happy coding :_)

我是 @程序员小助手 ,持续分享编程知识,欢迎关注。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值