API经过代理返回415,即使业务字段看似正确,也应先核对线上实际表示,再换出口。JSON、网址编码表单与multipart可承载相似值,却需要不同序列化和元数据。

本文是自有或明确授权端点的小型验收方案,未报告实测兼容结果;代理传输了正文,不代表目标就支持该格式。

接纳案例的请求标签与内部正文形状匹配,另一份标签与正文不匹配的请求被留待检查

一、记录端点契约

MDN说明415 Unsupported Media Type是拒绝不支持的请求格式,可能涉及Content-Type、Content-Encoding或正文检查。单凭状态不能确定哪个字段或组件拒绝。

列出准确网址、方法、API版本、允许的请求媒体类型及参数、请求内容编码和最小有效合成对象,依据目标文档及负责人确认。存在Accept-Post等响应提示时可参考,缺少提示不能当作猜格式的许可。

分清Content-Type描述本请求正文表示,Content-Encoding声明已应用的内容编码,Accept表达响应偏好。改Accept不会把请求序列化成支持的格式。

二、检查实际请求边界

  1. 选不触发付款、邮件或客户数据操作的测试接收端。
  2. 记录生效目标网址和方法,在客户端及授权接收端获取遮蔽后的元数据。
  3. 核对正文实际字节或安全合成样本,不只看序列化前的内存对象。
  4. 对比媒体类型、参数、内容编码与服务端所选解析器。
  5. 保存案例ID、客户端版本、正文长度与合成摘要,遮蔽凭据和个人信息。

共享客户端默认头可能在调用代码换正文格式后仍保留。检查拦截器和包装层合并后的最终头;发生重定向时,查看真实接收跳的方法与正文,不能假定保持原样。

三、先建立有效对照

有文档的JSON端点,用客户端支持的JSON序列化器生成无害样本,发送规定媒体类型,确认目标解析出预期字段及契约成功结果。2xx却忽略正文或得到空对象,不算对照通过。

再在测试环境仅改变同一小正文的声明类型,按端点契约记录预期拒绝。不能要求所有错误输入都返回415;语法或字段校验失败可能有不同的文档响应。

负例后恢复有效对照。若它也失败,先查状态、路由及配置,不将变化直接归于媒体类型。

四、浏览器FormData保留边界控制权

目标明确接收multipart时,用正确字段名构造小型FormData。MDN建议通过Fetch或XMLHttpRequest发送时,让浏览器设置Content-Type,确保边界与生成正文一致。

本请求移除冲突的全局JSON头或手写multipart头,不复制旧跟踪的boundary给新正文。非浏览器客户端应按自身文档使用multipart构造器,并将其输出头与正文视为配套结果。

顶层multipart类型与文件部分自己的类型、文件名不同。改扩展名或部分标签不会转换文件字节;样本仍须符合目标文件政策。

五、内容编码须整体调整

只有目标明确支持请求压缩,才单独测试实际编码后的有效样本及匹配声明。普通JSON标成已压缩不算;保留压缩字节却删编码头,也仍不匹配。

契约允许时先跑无压缩对照,再一起调整字节编码与声明,核对接收端解码后的合成字段。同时记录正文大小、解析限制及预期校验结果,避免把其他拒绝悄悄归成415。

六、比较线路并修正请求

批准基线与代理各用独立重置案例,固定客户端版本、目标、格式及样本,对照接收证据。HTTPS隧道中不能假定转发代理可检查加密目标正文;先识别自有TLS终止和解析层,再定位传输组件。

98IP动态住宅IP产品页适合了解授权地区API测试的接入产品,通过API配置页核对当前连接与账户选项。产品接入不定义目标接受的表示,也不证明特定序列化器兼容。

  • 规定有效表示:目标解析预期值。
  • 同正文冲突类型:观察到契约拒绝。
  • 浏览器FormData:生成边界与正文一致。
  • 文件部分:内容、类型、文件名满足政策。
  • 支持的内容编码:解码后字节与声明相符。
  • 恢复对照:修复有效且未改无关线路设置。

这些案例尚未执行。一起修正序列化器及元数据,再用新合成案例验证一次。不要换出口或重复发送未改变的不支持格式;写入结果未知时,按目标回执或读回规则查明后再考虑提交。

FAQ与完成清单

只改头能修415吗?仅当现有字节已符合文档表示,否则正文也要正确生成。

同一个对象就等于同一请求吗?不同序列化器可把相似应用值变成不同表示。

  • 契约与有效对照已记录。
  • 检查真实正文和最终合并头。
  • 保留FormData边界控制权。
  • 区分请求编码与响应偏好。
  • 核对接收字段和最终副作用。
  • 仅保存授权合成样本,尝试有界,不承诺未测兼容性。