前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Restful API 吹的五大三粗,为啥我用不起来?缺一样工具

Restful API 吹的五大三粗,为啥我用不起来?缺一样工具

作者头像
程序员小助手
发布2020-06-04 11:13:57
8490
发布2020-06-04 11:13:57
举报
文章被收录于专栏:程序员小助手

引言

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

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

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

HTTP网络请求参数

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

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

curl 用法

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

代码语言:javascript
复制
curl [options] [URL...]

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

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

HTTP GET 请求

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

代码语言:javascript
复制
curl https://example.com/posts

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

代码语言:javascript
复制
curl https://example.com/post?id=4820

HTTP POST 请求

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

代码语言:javascript
复制
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 结构体的字符串,可以手动指定:

代码语言:javascript
复制
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 的数据:

代码语言:javascript
复制
curl -X PUT -d "userId=5&title=Hello World&body=Post body." https://example.com/posts/5

HTTP PATCH 请求

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

代码语言:javascript
复制
curl -X PATCH -d "title=Hello Universe" https://example./posts/5

HTTP DELETE 请求

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

代码语言:javascript
复制
curl -X DELETE https://example.com/posts/5

授权访问

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

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

代码语言:javascript
复制
curl -X GET -H "Authorization: Bearer {ACCESS_TOKEN}" "https://api.server.io/posts"

写在最后

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

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

Happy coding :_)

我是 @程序员小助手 ,持续分享编程知识,欢迎关注。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-06-01,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 程序员小助手 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 引言
  • HTTP网络请求参数
  • curl 用法
  • HTTP GET 请求
  • HTTP POST 请求
  • HTTP PUT 请求
  • HTTP PATCH 请求
  • HTTP DELETE 请求
  • 授权访问
  • 写在最后
相关产品与服务
命令行工具
腾讯云命令行工具 TCCLI 是管理腾讯云资源的统一工具。使用腾讯云命令行工具,您可以快速调用腾讯云 API 来管理您的腾讯云资源。此外,您还可以基于腾讯云的命令行工具来做自动化和脚本处理,以更多样的方式进行组合和重用。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档