获授权的数据客户端经代理收到406,浏览器却能打开同一地址;把Accept改成*/*后变成200,JSON解析器收到的却是HTML。这不算修复。应先核对要求的响应格式、接口契约和实际载荷,再决定是否调整代理。本文提供受控验收方法,不代表98IP或目标服务的实测兼容性。

1. 先定义任务真正能消费的响应
记录预期接口、方法、授权范围、媒体类型、解析器及最小预期结果。对自有合成商品夹具,除了可解析,还应核对商品ID、市场及约定模式版本。成功打开登录页不等于取得商品数据。人类浏览页面和另一个API路由也不能直接互当对照。
Accept表达客户端能接收的响应媒体类型;请求Content-Type描述发出去的正文。给无正文GET修改Content-Type,并不能要求JSON。406可能与响应协商失败有关,415关注请求表示形式。语言、编码也是协商维度,本次调查响应类型时保持它们不变。不能仅凭状态码指认生成层。
2. 检查合并后的最终请求头
- 检查共享默认值、SDK设置和请求覆盖全部应用之后的实际Accept,证据先脱敏。
- 确认是否把全局application/json错误用于网页、图片或导出路由。浏览器资源请求应保留各自上下文。
- 排查重复Accept字段或意外列表合并,明确由哪层配置负责,保留一个有意定义的值。
- 对照接口文档支持的响应类型。供应商专用JSON媒体类型并不因为也能装JSON,就自动等价于application/json这一协商选项。
- 记录跳转与最终目标。登录或错误路由的响应不能证明原API已协商成功。
配置里看到的头可能不同于接收端实际所见。在自有预发布接口记录收到的Accept和关联标识,不记录凭据。如果请求没有出现,先查所有者入口证据,再判断是否与代理有关。
3. 执行四例响应格式矩阵
使用只读夹具,每例保持URL、Cookie、地区、方法和会话策略相同。第一例要求文档支持的类型;第二例在确有支持时要求另一个类型;第三例要求语法有效、但夹具刻意不提供的类型;第四例用*/*做诊断对照。不能未经授权在第三方接口制造负例。
每例保存准确Accept、响应状态、响应Content-Type、最终路由、解析结果和预期夹具身份。设定小规模请求预算,在获准的基线与代理路径执行相同案例。缺少直连基线时明确注明,不能据此声称代理导致故障。
受支持例应满足文档契约。不支持例由所有者规定返回406还是默认表示,不能要求所有服务器一律406。通配符获得200只说明返回了某种表示;只有消费者被明确设计并验证能处理该表示,才可用于生产。
4. 按结果选择修复方向
- 两条路径都拒绝相同的窄Accept:向所有者确认路由和格式,不靠换出口解决不支持的格式。
- 客户端显示支持值,自有接收端却收到其他值:用关联证据查共享中间件、跳转重建或明确配置的拦截层。
- 代理路径去了不同最终路由:先查授权或地区路由,不强迫解析器接纳网页。
- 两边200但Content-Type或夹具身份不同:判比较失败,识别具体变体,不只计状态成功。
普通未拦截CONNECT隧道中的HTTPS,正向代理看不到也不能改写加密内层Accept。错误页或Server头不足以归因。若边缘安全规则因其他策略使用406,应请所有者给出规则与关联证据;本文不提供伪装请求绕过规则的方法。
5. 修复消费契约,再查复用
按接口设置消费者实际能处理的Accept,使用文档支持的版本路由或供应商媒体类型。确需回退时,为每种允许类型定义独立解析和语义检查,不能把HTML转成空JSON后当成功。
同时核对响应Content-Type及解码后的正文。标签正确不代表语法与模式正确。错误正文可能有意使用不同于成功响应的类型,应依据实际状态和文档错误格式处理,不送进成功解析器。
对自有、多表示接口,沿正常缓存路径依次测结构化数据、文档、再结构化数据。逐次核对类型与夹具身份,让所有者审查缓存键,以及协商选择变体时的Vary。单次孤立成功不能证明共享缓存保持表示边界;不得清理或修改第三方缓存。
6. 何时使用98IP
任务需比较指定客户地区的获授权API行为时,可查看98IP动态住宅IP,依据98IP配置文档及账户实际设置取得接入参数。请求头矩阵内固定地区与会话策略,核对实际出口。
地区代理能协助发现路由或响应表示差异,不能让API凭空支持新格式,也不保证各地区响应一致。本文没有实测吞吐、客户端兼容性或失败请求计费结果。限制尝试次数、核对实际用量,只处理获授权的合成或批准数据。
7. 放行清单与常见问题
- 准确接口、成功媒体类型和接口级最终请求头有记录。
- 支持、备选、不支持、通配四例都有明确预期和观察结果。
- 状态、最终路由、Content-Type、解析和夹具身份共同通过。
- 错误仍按错误处理,HTML不静默变空JSON,缓存复用保留正确变体。
- 支持材料有请求标识及脱敏头,不含令牌、Cookie、代理密码或客户内容。
*/*是通用修复吗? 不是。扩大协商范围可能选出解析器无法处理的表示。除非每种允许结果都有明确处理路径,否则仅作受控诊断。
application/*表示所有JSON供应商格式可互换吗? 不表示。宽媒体范围是协商选择,不保证模式、版本或解析支持,应核对实际约定类型及正文。
能删除全部头测试吗? 应在获授权夹具上一次只改一个相关维度。同时删除授权、语言及其他状态,会破坏对照并可能进入其他资源。