简单聊聊http协议头参数之Content-Type和http状态码 415错误

news2024/11/25 1:05:28

大家好,我是G探险者。

今天聊一下http的状态码,415错误,因为项目里面使用了httpclient进行了远程服务调用,调用发送时,会有一个http header的参数设置。由于参数设置的问题经常会出现错误,导致调用失败,最常见的就是由于Content-Type参数值设置不准确导致了415错误。

下面我对http的协议头hader中Content-Type参数进行介绍。

Content-Type参数介绍

HTTP协议头中的Content-Type参数用于指示请求或响应中携带的实体正文(body)的MIME类型(Multipurpose Internet Mail Extensions)。它告诉客户端或服务器如何解释正文的内容。

Content-Type参数值的MIME类型通常以type/subtype的形式表示,其中type表示主类型(Top-Level Type),subtype表示子类型(Subtype)。type是广义的数据类型,而subtype则更具体地描述了数据的类型。

以下是Content-Type参数的一些常见取值及其含义:

  1. text/plain:纯文本,没有指定任何特定的格式。

  2. text/html:HTML格式的文档,用于网页内容。

  3. text/css:Cascading Style Sheets (CSS) 文件。

  4. application/json:JSON格式的数据。

  5. application/xml:XML格式的数据。

  6. application/octet-stream:未知的二进制数据,没有指定特定的格式。

  7. multipart/form-data:用于HTML表单上传文件等多部分数据。

  8. image/jpegimage/pngimage/gif:JPEG、PNG、GIF等图片格式。

  9. audio/mpegaudio/wav:MPEG、WAV等音频格式。

  10. video/mp4video/mpeg:MP4、MPEG等视频格式。

Content-Type参数值含义
text/plain纯文本数据
text/htmlHTML文档
text/cssCSS样式表
application/jsonJSON数据
application/xmlXML数据
application/octet-stream未知的二进制数据
multipart/form-data用于HTML表单上传文件等多部分数据
image/jpegJPEG图像
image/pngPNG图像
image/gifGIF图像
audio/mpegMPEG音频
audio/wavWAV音频
video/mp4MP4视频
video/mpegMPEG视频
model/3mf3D模型数据

这个表格包含了一些常见的Content-Type参数值,其中包括了主类型和子类型,以及对应的含义。

这些只是一些常见的Content-Type参数取值,实际上它可以包括许多其他类型。当客户端发送请求时,Content-Type参数指示服务器接收到的数据的格式。而当服务器发送响应时,它告知客户端正文的类型,以便客户端能够适当地解析数据。

我的代码里面设置了content-type,但是却没有设置它的字符集编码,导致我的请求一直不成功,

那么content-type的字符集编码如何设置呢?

Content-Type的字符集编码

通常情况下,HTTP协议头中的Content-Type参数值可以包括一个可选的字符集编码部分,用于指定正文的字符集。如果未指定字符集编码,则使用默认的字符集编码。

默认情况下,如果未指定字符集编码,则根据MIME类型的约定使用一些常见的默认字符集编码:

  • 对于text/*类型的文本数据,默认字符集编码是ISO-8859-1(也称为Latin-1)。
  • 对于application/*类型的数据,默认字符集编码是没有定义的,因为这种类型通常包含二进制数据或者不依赖于字符集编码。
  • 对于其他类型,也可能有默认的字符集编码规则。

如果需要明确指定字符集编码,可以在Content-Type参数值中使用; charset=语法,例如:

Content-Type: text/html; charset=utf-8

这将明确指定HTML文档的字符集编码为UTF-8。字符集编码可以是任何有效的字符集名称,如UTF-8ISO-8859-1GBK等。

设置字符集编码是非常重要的,特别是对于包含非英语字符的文本数据。正确设置字符集编码可以确保数据在传输和解析过程中被正确地处理和显示。

如果你在使用httpclient远程调用某个服务出现了,乱码情况或者415的状态码,请重点检查Content-Type以及他的字符集编码设置是否正确。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1489003.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Linux的进程的概念

目录 1.冯诺依曼体系结构(硬件) 2.操作系统(软件) 2.1概念 2.2设计os(操作系统)的目的 2.3如何理解管理 2.4系统调用和库函数概念 3.进程 3.1基本概念 3.2描述进程-PCB和组织进程 3.3ps axj指令 3.4查看进程 3.5通过系统调用获取进程表示符(P…

一篇了解电阻的使用

目录 一、电阻理论基础 1.电阻的定义 2.欧姆定律 3.电阻决定式 4.电阻的串并联​编辑 5.电阻的功率 6.温度对电阻的影响 二、电阻的选型 1.安装方式 2.电阻值 (1)电阻值的标称 (2)电阻值的确定 (3&#x…

管家婆订货易在线商城 VshopProcess 任意文件上传漏洞复现

0x01 产品简介 管家婆订货易,帮助传统企业构建专属的订货平台,PC+微信+APP+小程序+h5商城5网合一,无缝对接线下的管家婆ERP系统,让用户订货更高效。支持业务员代客下单,支持多级推客分销,以客带客,拓展渠道。让企业的生意更轻松。 0x02 漏洞概述 管家婆订货易在线商城…

Fastwhisper + Pyannote 实现 ASR + 说话者识别

文章目录 前言一、faster-whisper简单介绍二、pyannote.audio介绍三、faster-whisper pyannote.audio 实现语者识别四、多说几句 前言 最近在研究ASR相关的业务,也是调研了不少模型,踩了不少坑,ASR这块,目前中文普通话效果最好的…

Java多态性的作用及解析

多态性是 Java 面向对象编程的一个重要特性,它的主要作用包括以下几个方面: 提高代码的可扩展性:多态性使得我们可以在不修改现有代码的情况下,通过继承和重写方法来添加新的行为。这意味着我们可以在不影响现有功能的前提下,对代码进行扩展和修改。 增强代码的可读性:使…

基础真空技术外国文献Fundamentals of Vacuum Technology

基础真空技术外国文献Fundamentals of Vacuum Technology

Maven构建MapReduce程序上传至虚拟机运行找不到jdbc.Driver

问题前置: Maven构建MapReduce程序, pom中已经写入jdbc驱动, 上传至虚拟机运行扔找不到jdbc.Driver, 具体报错:java.lang.RuntimeException: java.lang.ClassNotFoundException: com.mysql.jdbc.Driver 第一步:确认pom…

2024022701-信息安全(二)——密码学

密码学的基本概念 密码学(Cryptology): 研究信息系统安全保密的科学。 密码编码学(Cryptography): 研究对信息进行编码,实现对信息的隐蔽。 密码分析学(Cryptanalytics) : 研究加密消息的破译或消息的伪造。 消息被称为明文(Plaintext)。 用…

LeetCode第125场双周赛个人题解

目录 100231. 超过阈值的最少操作数 I 原题链接 思路分析 AC代码 100232. 超过阈值的最少操作数 II 原题链接 思路分析 AC代码 100226. 在带权树网络中统计可连接服务器对数目 原题链接 思路分析 AC代码 100210. 最大节点价值之和 原题链接 思路分析 AC代码 10023…

【动态规划】第十一届蓝桥杯省赛第二场C++ C组《数字三角形》(c++)

1.题目描述 上图给出了一个数字三角形。 从三角形的顶部到底部有很多条不同的路径。 对于每条路径,把路径上面的数加起来可以得到一个和,你的任务就是找到最大的和。 路径上的每一步只能从一个数走到下一层和它最近的左边的那个数或者右边的那个数。 …

kafka启动命令、查看topic命令、查看消息内容命令

kafka启动命令 cd /opt/kafka/kafka_2.12-3.5.1/bin ./kafka-server-start.sh ../config/server.properties Windows环境下用kafka Tool 连不上虚拟机的broker报了unable to connect broker 0, 但是zookeeper可以连接上 server.properties的listeners改为listene…

Oracle定时任务和存储过程

--1.声明定时任务 DECLAREjob NUMBER; BIGIN dbms_job.sumit(job, --任务ID,系统定义的test_prcedure(19),--调用存储过程?to_date(20240305 02:00,yyyymmdd hh24:mi) --任务开始时间sysdate1/(24*60) --任务执行周期 [每分钟执行…

1818294-46-0,马来酰亚胺-PEG8-羧酸,能够在各种酸碱条件下保持稳定的性能

您好,欢迎来到新研之家 文章关键词:1818294-46-0,马来酰亚胺-PEG8-羧酸,Mal PEG8 COOH,Maleimide PEG8 acid 一、基本信息 【产品简介】:Maleimide PEG8 acid is an excellent water-soluble compound t…

【玩转数据库mysql】最全mysql数据库安装使用教程,史上最详细保姆式喂饭教程(图文结合)

安装运行mysql目录 涉及知识写在前面演示效果一、mysql是否安装检测1.1 cmd命令行1.2 查看服务进程 二、下载mysql2.1 点击下载2.2 跳过登陆直接下载 三、解压配置并安装3.1 解压安装包3.2创建my.ini3.3 编辑my.ini,3.4 在bin目录输入cmd回车3.5初始化mysql(找密码&…

大数据权限认证 Kerberos 部署

文章目录 1、什么是 Kerberos2、Kerberos 术语和原理2.1、Kerberos 术语2.1、Kerberos 原理 3、Kerberos 服务部署3.1、前置条件3.2、安装依赖3.3、配置 krb5.conf3.4、配置 kdc.conf3.5、配置 kadm5.acl3.6、安装 KDC 数据库3.7、启动服务3.8、创建 Kerberos 管理员3.9、创建普…

分巧克力 刷题笔记

/* 分巧克力 解题思路 二分 直接检查看答案是否符合题目条件 对于一块边长分别为x 和y的巧克力\\ 假设我们输入检查的数为k 其能分割成的 k*k 的巧克力的块数为 (x/k)*(y/k) 因为c里面的除法是下取整的所以我们不用考虑奇偶数 是否能整除 将每一块巧克力能分成的k*k的巧克力…

MyCAT学习——在openEuler22.03中安装MyCAT2(网盘下载版)

准备工作 因为MyCAT 2基于JDK 1.8开发。也需要在虚拟机中安装JDK(JDK官网就能下载,我这提供一个捷径) jdk-8u401-linux-x64.rpmhttps://pan.baidu.com/s/1ywcDsxYOmfZONpmH9oDjfw?pwdrhel下载对应的tar安装包,以及对应的jar包 安装程序包…

【笔记版】edgecore.yaml分析总结

1. 文件路径 /etc/kubeedge/config edgecore.yaml是该目录下唯一的文件 附上链接:edgecore.yaml 2. 文件生成方式 2.1 方式一 使用keadm安装部署的方式,执行完keadm join --cloudcore-ipportcloudcore监听的IP地址:端口(默认为10002&…

嵌入式驱动学习第二周——断言机制

前言 这篇博客来聊一聊C/C的断言机制。 嵌入式驱动学习专栏将详细记录博主学习驱动的详细过程,未来预计四个月将高强度更新本专栏,喜欢的可以关注本博主并订阅本专栏,一起讨论一起学习。现在关注就是老粉啦! 目录 前言1. 断言介绍…