首页 > 其他分享 >postman的post方法中Body项里,none,form-data,x-www-form-urlencoded,raw,binary,GraphQL有什么不同

postman的post方法中Body项里,none,form-data,x-www-form-urlencoded,raw,binary,GraphQL有什么不同

时间:2024-10-08 14:22:13浏览次数:8  
标签:Body binary form 文件 data 发送 GraphQL 数据

目录
在 Postman 中,使用 POST 方式时,Body 项中有几种不同的数据传输方式可供选择,它们之间的主要区别在于数据的格式和编码方式。以下是每种类型的详细解释:

1. None

  • 描述:不发送请求体(body)。
  • 用途:如果你的 POST 请求不需要发送任何数据(即不需要 body),可以选择这个选项。

2. form-data

  • 描述:以 multipart/form-data 格式发送表单数据,常用于上传文件或传递包含文件和文本的混合数据。

  • 特点

    • 数据分为多个部分(multipart),每个字段的值都可以是文本或文件。
    • 常见于表单提交(特别是上传文件时)。
    • Postman 提供了一个图形界面,你可以选择文件和文本字段来填充数据。
  • 用途

    • 当你需要发送混合类型的数据(文本和文件)时,比如文件上传场景。
    • Django 的 request.FILES 可用于处理文件上传。
  • 示例
    请求体的格式如下,文件和文本数据会被分开:

    POST /upload HTTP/1.1
    Content-Type: multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW
    ----WebKitFormBoundary7MA4YWxkTrZu0gW
    Content-Disposition: form-data; name="file"; filename="example.jpg"
    
    (binary data)
    ----WebKitFormBoundary7MA4YWxkTrZu0gW
    Content-Disposition: form-data; name="description"
    
    Image description
    ----WebKitFormBoundary7MA4YWxkTrZu0gW--
    

3. x-www-form-urlencoded

  • 描述:以 URL 编码的方式发送键值对数据,这种方式的 POST 数据在 HTTP 报头中以 application/x-www-form-urlencoded 作为 Content-Type

  • 特点

    • 数据格式类似于查询字符串(URL 中的参数),每个键值对用 & 分隔。
    • 字符会进行 URL 编码(如空格被替换为 +,特殊字符被转义)。
    • 常见于传统的 HTML 表单提交。
  • 用途

    • 当表单数据较为简单(文本字段)且不涉及文件时,比如登录、提交简单表单。
  • 示例
    请求体的格式如下:

    POST /submit-form HTTP/1.1
    Content-Type: application/x-www-form-urlencoded
    
    name=JohnDoe&email=john%40example.com&message=Hello+World
    

4. raw

  • 描述:允许你以纯文本的形式发送数据,并支持不同的数据格式(如 JSONXMLHTML、文本等)。

  • 特点

    • 你可以手动选择数据格式,比如 JSONXML 等,Postman 会自动设置 Content-Type
    • 适合发送结构化数据,比如 JSON 数据。
  • 用途

    • 当你需要发送复杂的结构化数据时,如 API 请求发送 JSON 或 XML 数据。
  • 示例
    发送 JSON 数据的请求体:

    POST /api/user HTTP/1.1
    Content-Type: application/json
    
    {
        "name": "John Doe",
        "email": "[email protected]",
        "message": "Hello Django"
    }
    

    发送 XML 数据的请求体:

    POST /api/user HTTP/1.1
    Content-Type: application/xml
    
    <user>
        <name>John Doe</name>
        <email>[email protected]</email>
        <message>Hello Django</message>
    </user>
    

5. binary

  • 描述:用于以二进制格式发送数据,比如文件的原始二进制数据。

  • 特点

    • 适用于上传文件的场景,Postman 会允许你从文件系统中选择文件来发送。
    • 不进行任何数据格式化,直接发送文件的二进制内容。
  • 用途

    • 适合上传文件时使用,比如图片、视频、PDF 等。
  • 示例
    发送文件时的请求头可能类似这样:

    POST /upload HTTP/1.1
    Content-Type: application/octet-stream
    
    (binary data)
    

6. GraphQL

  • 描述:专用于发送 GraphQL 查询数据。Postman 提供了一个专门的选项来发送 GraphQL 请求。

  • 特点

    • Postman 会帮助你设置 GraphQL 查询的结构,包括查询和变量。
    • 通常数据会以 application/json 格式发送。
  • 用途

    • 用于与支持 GraphQL 的 API 交互,通过单个请求获取多个资源,或者根据具体需求获取特定数据。
  • 示例
    发送 GraphQL 请求:

    POST /graphql HTTP/1.1
    Content-Type: application/json
    
    {
      "query": "query { user(id: 1) { name email } }",
      "variables": {}
    }
    

总结

选项 说明 用途
None 不发送请求体(Body)。 请求不需要发送任何数据时。
form-data multipart/form-data 格式发送表单数据,适合文件上传。 需要发送文件或包含文件的表单时。
x-www-form-urlencoded 以 URL 编码的格式发送键值对数据,适合简单的文本数据。 表单数据较为简单,且不涉及文件时。
raw 允许发送纯文本数据,支持多种格式(如 JSON、XML、HTML)。 发送复杂结构化数据,如 JSON、XML。
binary 以二进制格式发送文件数据,直接传输文件内容。 需要上传文件的原始二进制数据时。
GraphQL 用于发送 GraphQL 查询请求。 与支持 GraphQL 的 API 进行交互时。

选择哪种方式取决于你需要发送的数据类型以及 API 的要求。

标签:Body,binary,form,文件,data,发送,GraphQL,数据
From: https://www.cnblogs.com/anyux/p/18451560

相关文章

  • 关系数据库的范式(Normal Form)知识点
    第2题的内容是:单选题已知关系R(A,B,C,D)和R上的函数依赖集F={B→D,AB→C},候选码是(1),关系R属于(2)。选项A.1NFB.2NFC.3NFD.BCNF分析这道题目考察的是关系数据库的范式(NormalForm)知识点。范式的相关内容:第一范式(1NF):要求关系中的每个域都是原子性的,即每个字段都是不可分割的......
  • Transformer--详解
    Transformer旨在解决自然语言处理任务中的长依赖性问题。与传统的递归神经网络(如LSTM、GRU)不同,Transformer完全摒弃了递归结构,依赖自注意力机制(Self-Attention)来建模输入序列中的所有位置之间的关系。因此,Transformer能够并行处理整个序列,这极大地提高了训练速度和效率。Tran......
  • DeAdmin 1对多关联FormList编辑实现
    简介当模型关系中有1对多时。一般有两种方法实现,1.在表单中直接使用表格组件每次都是独立创建或编辑,缺点是当新增数据时因为没有主数据id所以不能使用,只有编辑主数据时可以使用2.在表单中直接使用formlist组件直接编辑信息。缺点是在数据量不大的情况下使用。这里......
  • clang-format的代码格式化
    1.VSCodesettings.json{"C_Cpp.default.intelliSenseMode":"windows-msvc-x64",//"C_Cpp.clang_format_fallbackStyle":"Google","C_Cpp.clang_format_path":"D:/software/clang+llvm-18.1.8-x86_64-p......
  • 订单交易平台四:登录界面(使用Forms组件解决小bug)
    总任务:使用Forms组件解决用户输入错误、空,并且展示错误信息在输入框的下面解决用户校验,以及用户提交之后还可以将第一次输入的东西继续展示到页面1.示例1.1先导入forms第三方模块包,并且写入我们前端组要校验的字段```fromdjangoimportformsclassLoginForm(forms.F......
  • 使用VS2022 Performance Profiler进行Native内存分析
    注:勾选MemoryUsage进行Native内存抓取 不带pdb要进行Native内存抓取点击Start按钮开始进行内存分析 点击“StopCollection”按钮,来结束Profile。 注:如果报如下错误:Failedtoloadmemoryusageview: System.NullReferenceException,需要将VS2022升级到最新或使用VS......
  • WPF string format
    Text="{BindingStringFormat={}{0}items,Source={StaticResourcemainVM},Path=Cnt}"                //xaml<Windowx:Class="WpfApp17.MainWindow"xmlns="http://schemas.microsoft.com/winfx/2006/xaml/pre......
  • winforms基本操作-将datagridview内容保存为excel文件
    这里记录一下将winforms展示的datagridview,导出或保存为excel文件。这里说一下环境、版本信息:win系统:win11框架:winforms依赖:Microsoft.Office.Interop.Excel.net:8.0.401.netframework:4.8DataGridView对象为dataGridView1,然后添加一个按钮,绑定事件btnConfirm即可。priva......
  • 125.785 S1  Binary Model practice
    125.785S12024-- Assignment 2 (Part A and Part B)Duedate:18th October2024Theassignmentis30%tothecourseassessment, including two parts:PartA. Practice binary and paneldata regressions (15%), Part B.Critical Reading (15%).......
  • 《Yttomp3.click - An Outstanding YouTube to MP3 Conversion Platform》
    Intoday'sdigitalera,thedemandforobtainingandconvertingaudiocontentisgrowingincreasingly.Formanymusiclovers,videocreators,andordinaryusers,beingabletoextracttheaudiofromfavoriteYouTubevideosandconvertitintoMP3for......