使用curl发送REST API请求
嘻嘻发布于2022-05-19
最后更新于2022年5月19日
浏览cURL 是一个命令行实用程序,用于使用支持的协议之一从远程服务器传输数据或向远程服务器传输数据。它默认安装在 macOS 和大多数 Linux 发行版上。开发人员使用 cURL 来测试 API 、查看响应Headers和发送HTTP 请求。
API 请求由四个不同的部分组成:
- Endpoint 。这是客户端用来与服务器通信的 URL。
- HTTP method。它告诉服务器客户端想要执行什么操作。最常用的方法是
GET
POST
PUT
DELETE
和PATCH
- Headers 。用于在服务器和客户端之间传递附加信息,例如授权。
- Request body。发送到服务器的数据。
使用curl
RESTful API 进行交互。curl
是用于从远程服务器传输数据或向远程服务器传输数据的命令行实用程序。
Curl选项
该curl
命令的语法如下:
以下是我们在发出请求时将使用的选项:
-X
,--request
– 要使用的 HTTP 方法。-i
,--include
– 包括响应Headers。-d
,--data
– 要发送的数据。-H
,--header
– 要发送的附加Headers。
HTTP GET
GET 方法从服务器请求特定资源。
GET 是使用curl
. 以下是向JSONPlaceholder API 发出 GET 请求以获取所有帖子的 JSON 表示的示例:
curl https://jsonplaceholder.typicode.com/posts
要过滤结果,请使用查询参数:
curl https://jsonplaceholder.typicode.com/posts?userId=1
HTTP POST
POST 方法用于在服务器上创建资源。如果资源存在,则将其覆盖。
以下命令 使用选项指定的数据发出POST 请求
curl -X POST -d "userId=5&title=Hello World&body=Post body." https://jsonplaceholder.typicode.com/posts
请求正文的类型使用Content-Type
标头指定。默认情况下,当未给出此标头时curl
使用Content-Type: application/x-www-form-urlencoded
.
要发送 JSON 格式的数据,请将正文类型设置为application/json
:
curl -X POST -H "Content-Type: application/json" \
HTTP Put
PUT 方法用于更新或替换服务器上的资源。它将指定资源的所有数据替换为请求数据。
curl -X PUT -d "userId=5&title=Hello World&body=Post body." https://jsonplaceholder.typicode.com/posts/5
HTTP PATCH
PUT 方法用于对服务器上的资源进行部分更新。
curl -X PUT -d "title=Hello Universe" https://jsonplaceholder.typicode.com/posts/5
HTTP DELETE
DELETE 方法从服务器中删除指定的资源。
curl -X DELETE https://jsonplaceholder.typicode.com/posts/5
Authorization授权
如果 API 端点需要身份验证,您将需要获取访问密钥。否则,API 服务器将响应“禁止访问”或“未授权”响应消息。
获取访问密钥的过程取决于您使用的 API。获得访问令牌后,您可以在标头中发送它:
curl -X GET -H "Authorization: Bearer {ACCESS_TOKEN}" "https://api.server.io/posts"
—
如何使用curl
来发出测试 API 请求。有关 的更多信息curl
,请访问Curl 文档 页面。