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

大家好,我是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.mfbz.cn/a/428334.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

基于51单片机微波炉简易控制仿真设计数码管显示proteus仿真+程序+设计报告+讲解视频)

基于51单片机微波炉简易控制仿真设计数码管显示 1. 主要功能:2. 讲解视频:3. 仿真4. 程序代码延时函数定时器初始化定时器中断产生PWM显示函数 5. 设计报告6. 设计资料内容清单&&下载链接资料下载链接: 基于51单片机微波炉简易控制仿…

xfce任务栏图标挤到一起了

分隔符,扩展,撑开任务栏

2024东南大学553复试真题及笔记

2023年真题知识点 引用指针 题目为 传递一个指针的引用做修改,输出指针指向的结果,但是指针被修改,结果就不一样了。 static 静态变量 类里面的静态成员变量,很简单的题目 for循环 看循环的内容输出字符串 try try catch捕…

Launch学习

参考博客: (1) 史上最全的launch的解析来啦,木有之一欧 1 ROS工作空间简介 2 元功能包 src目录下可以包含多个功能包,假设需要使用机器人导航模块,但是这个模块中包含着地图、定位、路径规划等不同的功能包,它们的逻…

Vue3和ElementPlus封装table组件

最近学习vue3.2并自己在写一个项目,然后发现好几个页面都是列表页,重复写table和column也是觉得累,学习的项目列表页不算多,要是公司项目就不一样了,所以就想着自己封装一个table组件,免去大量重复工作和co…

Acwing---1497. 树的遍历

树的遍历 1.题目2.基本思想3.代码实现 1.题目 一个二叉树,树中每个节点的权值互不相同。 现在给出它的后序遍历和中序遍历,请你输出它的层序遍历。 输入格式 第一行包含整数 N,表示二叉树的节点数。 第二行包含 N个整数,表示二…

Javase-类与对象

文章目录 一 . 面向过程的初步认知二 . 如何创建一个类三 . 如何创建一个对象四 . this引用五 . 构造方法六 . 初始化 一 . 面向过程的初步认知 Java是一门纯面向对象的语言(Object Oriented Program,简称OOP),在面向对象的世界里,一切皆为对…

使用Android Native Hook技术解决VLC播放器闪退的问题

文章目录 1.概述2.问题描述3.问题分析4.问题解决5.总结 1.概述 在做公司的一个TOB的需求时,发现调起Unity提供的3D播放器播放网络在线视频时闪退了,然后就拉着相关部门的人一起分析问题,最后定位到是VLC里面用到的系统日志打印函数在部分的系…

Flask入门二(Flask的CBV、模版语法、请求和响应、session执行流程分析、Flask闪现、请求拓展、g对象)

文章目录 一、Flask的CBV1.CBV的写法2.CBV的执行流程3.endpoint 的使用4.CBV中得methods作用5.CBV加装饰器 二、模版语法1.渲染变量2.变量的循环3.逻辑判断 三、请求和响应四、session执行流程分析1.基本使用2.执行流程3.Django中session的执行流程 五、Flask闪现1.作用2.案例3…

【Unity】Node.js安装与配置环境

引言 我们在使用unity开发的时候,有时候会使用一些辅助工具。 Node.js就是开发中,经常会遇到的一款软件。 1.下载Node.js 下载地址:https://nodejs.org/en 2.安装Node.js ①点击直接点击Next下一步 ②把协议勾上,继续点击…

【论文精读】I-JEPA

摘要 计算机视觉中,常采用基于不变性和基于生成的方法进行自监督学习。对比学习(CL)是典型的基于不变性的方法,通过预训练方法优化编码器,使其能生成同一图像的两个或多个视图的相似嵌入,其中图像视图通常由…

格两例12345

osu/Lucky Roll gaming 周末osu有道题:lcg已知低位 def lcg(s, a, b, p):return (a * s b) % pp getPrime(floor(72.7)) a randrange(0, p) b randrange(0, p) seed randrange(0, p) print(f"{p }") print(f"{a }") print(f"{b …

关于python函数参数传递

参数传递 在 python 中,类型属于对象,对象有不同类型的区分,变量是没有类型的: 在下面的代码示例重,[1,2,3] 是 List 类型,“qayrup” 是 String 类型,而变量 a 是没有类型,它仅仅…

java找工作之Mybatis(入门及xml配置相关)

Mybatis 学习Mybatis就要学会查看官网&#xff0c;官网地址如下&#xff1a;<MyBatis中文网 > 1、简介 1.1什么是Mybatis MyBatis 是一款优秀的持久层框架&#xff0c;它支持自定义 SQL、存储过程以及高级映射。MyBatis 免除了几乎所有的 JDBC 代码以及设置参数和获取…

图形系统开发实战课程:进阶篇(上)——9.空间算法(一)

图形开发学院&#xff5c;GraphAnyWhere 课程名称&#xff1a;图形系统开发实战课程&#xff1a;进阶篇(上)课程章节&#xff1a;“图形样式”原文地址&#xff1a;https://www.graphanywhere.com/graph/advanced/2-9.html 第九章 空间算法&#xff08;一&#xff09; \quad 在…

计算机专业必看的十部电影

计算机专业必看的十部电影 1. 人工智能2. 黑客帝国3. 盗梦空间4. 社交网络5. Her6. 模仿游戏7. 斯诺登8. 头号玩家9. 暗网10. 网络迷踪 计算机专业必看的十部电影&#xff0c;就像一场精彩盛宴&#xff01; 《黑客帝国》让你穿越虚拟世界&#xff0c;感受高科技的魅力《模仿游戏…

小红关鸡(双指针)

链接&#xff1a;登录—专业IT笔试面试备考平台_牛客网 来源&#xff1a;牛客网 时间限制&#xff1a;C/C 1秒&#xff0c;其他语言2秒 空间限制&#xff1a;C/C 262144K&#xff0c;其他语言524288K Special Judge, 64bit IO Format: %lld 题目描述 有nnn个鸡窝排成一排&a…

#WEB前端(CCS常用属性,补充span、div)

1.实验&#xff1a; 复合元素、行内元素、块内元素、行内块元素 2.IDE&#xff1a;VSCODE 3.记录&#xff1a; span为行内元素&#xff1a;不可设置宽高&#xff0c;实际占用控件决定分布空间。 div为块内元素&#xff1a;占满整行&#xff0c;可以设置宽高 img为行内块元…

Windows 2012 设置 nginx 开机自启动(适用于windows2012/10)

Windows 2012 设置 nginx 开机自启动&#xff08;适用于windows2012/10&#xff09;https://www.cnblogs.com/xuegqcto/articles/7521483.html 在windows server 2012上安装nginx&#xff0c;同时配置开机自启动服务&#xff08;推荐使用“Windows Service Wrapper”工具&…

前后端分离项目服务器部署

文章目录 前言准备工作安装jdk1.8安装nginx安装库解压、编译nginx并安装nginx 命令测试nginx 安装mysql卸载mariadb用root用户登录系统&#xff0c;增加mysql用户和组准备数据目录初始化MySQL将mysql加入到服务中编辑配置文件&#xff0c;保存退出启动mysql配置环境变量设置开机…
最新文章