当前位置: 首页 > article >正文

HTTP 请求中的Content-Type

在 HTTP 请求中,Content-Type 头部字段用于指示请求体中数据的格式。不同的 Content-Type 值对应不同的数据格式和编码方式。下面详细解释 application/x-www-form-urlencodedapplication/json 两种常见的 Content-Type,并介绍其他一些常用的 Content-Type 值。

1、application/x-www-form-urlencoded

  • 用途:主要用于提交表单数据
  • 数据格式:数据以键值对的形式存在,每个键值对用 = 连接,多个键值对用 & 分隔。例如:name=John&age=30
  • 编码方式:所有字符都会被 URL 编码,特殊字符会被转换成 %XX 形式的十六进制值
  • 示例
    headers = {
        "Content-Type": "application/x-www-form-urlencoded"
    }
    data = "name=John&age=30"
    response = requests.post(url, headers=headers, data=data)

2、application/json

  • 用途:用于传输 JSON 格式的数据。
  • 数据格式:数据以 JSON 格式存在,通常是一个字符串形式的对象或数组。例如:{"name": "John", "age": 30}
  • 编码方式不需要额外编码,直接将 JSON 字符串发送即可
  • 示例
    headers = {
        "Content-Type": "application/json"
    }
    data = {"name": "John", "age": 30}
    response = requests.post(url, headers=headers, json=data)

其他常用的 Content-Type 值

  1. multipart/form-data

    • 用途:主要用于文件上传,也可以包含其他表单数据。
    • 数据格式:数据以多部分的形式存在,每部分有自己的头部和内容。
    • 编码方式:每部分的数据可以有不同的编码方式。
    • 示例
      headers = {
          "Content-Type": "multipart/form-data"
      }
      files = {'file': open('example.txt', 'rb')}
      response = requests.post(url, headers=headers, files=files)
  2. text/plain

    • 用途:用于纯文本数据。
    • 数据格式:纯文本字符串。
    • 编码方式通常使用 UTF-8 编码
    • 示例
      headers = {
          "Content-Type": "text/plain"
      }
      data = "This is a plain text message."
      response = requests.post(url, headers=headers, data=data)
  3. application/xml

    • 用途:用于 XML 格式的数据。
    • 数据格式:XML 文档。
    • 编码方式通常使用 UTF-8 编码
    • 示例
      headers = {
          "Content-Type": "application/xml"
      }
      data = "<root><name>John</name><age>30</age></root>"
      response = requests.post(url, headers=headers, data=data)
  4. application/octet-stream

    • 用途:用于二进制数据。
    • 数据格式:原始字节流。
    • 编码方式没有特定的编码方式,直接发送字节数据
    • 示例
      headers = {
          "Content-Type": "application/octet-stream"
      }
      data = b'\x00\x01\x02\x03'
      response = requests.post(url, headers=headers, data=data)
  5. image/jpegimage/png

    • 用途:用于发送图像数据。
    • 数据格式:JPEG 或 PNG 图像文件。
    • 编码方式二进制数据
    • 示例
      headers = {
          "Content-Type": "image/jpeg"
      }
      with open('image.jpg', 'rb') as f:
          data = f.read()
      response = requests.post(url, headers=headers, data=data)

总结

不同的 Content-Type 值适用于不同类型的数据传输需求。选择合适的 Content-Type 可以确保数据在客户端和服务器之间正确地传输和解析。在实际开发中,根据具体的业务需求和 API 规范选择合适的 Content-Type 是非常重要的。


http://www.kler.cn/news/361303.html

相关文章:

  • Java 语法糖详解(2)
  • 什么是全局污染?怎么避免全局污染?
  • elk部署安装
  • WPF入门_04绑定
  • 【Python数据库操作】使用SQLite和MySQL进行数据存储和查询!
  • 简单汇编教程9 字符串与字符串指令
  • Wooden UI(木头UI纹理按钮边框 背景图标 带PNG素材)
  • C++sort排序
  • 每日回顾:用C写简单的数组OJ题
  • 实践笔记 - 微服务架构下RESTful风格api之我为何抛弃了路由参数
  • 【Flutter】Dart:运算符
  • SQL 干货 | SQL 半连接
  • JVM进阶调优系列(5)CMS回收器通俗演义一文讲透FullGC
  • 添加gitlab项目成员
  • vue 刷新组件
  • 【嵌入式实时操作系统开发】智能家居入门4(FreeRTOS、MQTT服务器、MQTT协议、STM32、微信小程序)
  • RIGOL示波器 AUTO键功能已被限制,怎么解决?
  • 人工智能--数学基础
  • ReactOS系统中EPROCESS结构体的声明
  • 衣柜是在乳胶漆之前装还是之后装好呢?
  • 独立开发者手册
  • CDL数据传输工具
  • Mycat2安装配置
  • AI学习指南深度学习篇-对比学习的原理
  • Linux RTC 驱动实验
  • 详细尝鲜flutter