Categories: Shell编程

使用curl发送REST API请求

cURL 是一个命令行实用程序,用于使用支持的协议之一从远程服务器传输数据或向远程服务器传输数据。它默认安装在 macOS 和大多数 Linux 发行版上。开发人员使用 cURL 来测试 API 、查看响应Headers和发送HTTP 请求。

API 请求由四个不同的部分组成:

  • Endpoint 。这是客户端用来与服务器通信的 URL。
  • HTTP method。它告诉服务器客户端想要执行什么操作。最常用的方法是GET POST PUT DELETEPATCH
  • Headers 。用于在服务器和客户端之间传递附加信息,例如授权。
  • Request body。发送到服务器的数据。

使用curlRESTful 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 文档 页面。

5.0
03
Bash Shebang是什么?
如何在bash脚本添加注释
嘻嘻

嘻嘻IT: 笔者是一个工作七八年的程序猿老鸟,从事涉及的技术栈主要包括PHP、Linux、Devops等,喜欢研究新技术,尝试新技术,提升技术自动化和开发效率,致力于write less,do more! 技术每年都会层出不穷,领域划分的越来越细,不可能学习所有的东西,保持对技术的好奇心,理解技术中核心思想,做一个有深度,有思想的开发!

Recent Posts

Autojump一个linux目录快速跳转的命令工具

Linux命令行实用程序有一个…

1天 ago

Groq一款语言处理的超快AI解决方案

Groq正在AI创新的最前沿,…

1天 ago

WordUp是一个AI词汇增强应用

WordUp是一个AI驱动的词…

1天 ago

Sia一款AI学习引擎

Sia作为全球首款统一人工智能…

1天 ago

Exscientia一款药物发现AI工具

Exscientia,一家杰出…

2天 ago