zoukankan      html  css  js  c++  java
  • 如何使用Curl向RESTFUL风格的API发送HTTP请求

    在本文中,我们将讨论如何curl与RESTful API进行交互。curl是用于从远程服务器或向远程服务器传输数据的命令行实用程序。默认情况下,它已安装在macOS和大多数Linux发行版上。

    应用程序接口(API)是允许软件程序相互通信的一组定义和协议。

    术语REST代表代表性的状态转移。它是一种体系结构样式,由创建Web服务时要使用的一组约束组成。

    RESTful API是遵循REST体系结构的API。通常,REST API使用HTTP协议来发送和检索数据以及JSON格式的响应。您可以使用标准的HTTP方法通过API创建,查看,更新或删除资源。

    要测试RESTful API并与之交互,可以使用任何可以发出HTTP请求的库或工具。

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

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

    Curl参数选项

    curl命令的语法如下:

    curl [options] [URL...]

    以下是我们发出请求时将使用的选项:

    • -X--request-要使用的HTTP方法。
    • -i--include-包括响应头。
    • -d--data-要发送的数据。
    • -H--header-要发送的其他标头。

    HTTP GET

    GET方法从服务器请求特定资源。

    使用发出HTTP请求时,GET是默认方法curl。以下是向所有帖子的JSON表示形式向JSONPlaceholder API 发出GET请求的示例:

    curl https://jsonplaceholder.typicode.com/posts

    要过滤结果,请使用查询参数:

    curl https://jsonplaceholder.typicode.com/posts?userId=1

    HTTP POST

    POST方法用于在服务器上创建资源。如果资源存在,则将其覆盖。

    以下命令将使用通过该-d选项指定的数据创建一个新帖子:

    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" 
     -d '{"userId": 5, "title": "Hello World", "body": "Post body."}' 
     https://jsonplaceholder.typicode.com/posts

    HTTP PUT

    PUT方法用于更新或替换服务器上的资源。它将指定资源的所有数据替换为请求数据。

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

    HTTP补丁

    PUT方法用于对服务器上的资源进行部分更新。

    curl -X PUT -d "title=Hello Universe" https://jsonplaceholder.typicode.com/posts/5

    HTTP删除

    DELETE方法从服务器中删除指定的资源。

    curl -X DELETE https://jsonplaceholder.typicode.com/posts/5

    认证方式

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

    获取访问密钥的过程取决于您使用的API。获得访问令牌后,可以在标头中发送它:

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

    结论

    我们已经向您展示了如何curl用于发出测试API请求。有关的更多信息curl,请访问“ Curl文档”页面。

     原文地址:https://www.iplayio.cn/post/5247697

  • 相关阅读:
    SpringMVC返回JSON数据时日期格式化问题
    elementUI-tree组件 懒加载
    vue elementUi tree 懒加载使用详情
    Mybatis ResultMap Collection 复合主键
    ElasticSearch-IK分词
    Spring中的InitializingBean接口的使用
    ContextLoadListener & DispatcherServlet 加载顺序以及加载过程
    Spring中查看加载配置文件中 加载类的个数及详情
    DispatcherServlet 被加载顺序
    JetBrainsIDEA-structure结构继承的图标说明
  • 原文地址:https://www.cnblogs.com/livelab/p/12980226.html
Copyright © 2011-2022 走看看