400错误主因是请求体结构、字段名或数据类型不符api校验规则;需用postman依次验证url与方法、headers、json结构、原始字节流及必填字段。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

如果您在调用Perplexity API时收到400 Bad Request响应,通常表明请求体(Body)结构、字段命名或数据类型与API服务端的严格校验规则不匹配。Postman是定位此类问题最直观的调试工具,可通过其请求构造与响应解析能力逐项验证请求合法性。以下是利用Postman抓包并分析请求Body结构的系统性调试步骤:
一、验证请求URL与HTTP方法是否正确
Perplexity Chat Completions接口仅接受POST方法,且必须使用官方指定的终结点。任何路径拼写错误、协议混用(如http代替https)或误用GET都会触发400。
1、在Postman中新建请求,确保请求类型明确选择为POST。
2、在URL输入框中完整粘贴官方终结点:https://api.perplexity.ai/chat/completions,确认无空格、多余斜杠或本地代理前缀。
3、点击右上角“Send”旁的下拉箭头,选择“Copy request as cURL”,将生成的命令粘贴至终端执行,比对是否仍返回400——若cURL成功而Postman失败,则问题锁定在Postman配置层面。
二、检查Headers中Authorization与Content-Type是否合规
Perplexity API强制要求两个关键Header:Bearer认证凭证与JSON内容声明。缺失任一字段、值格式错误或大小写不规范均导致400。
1、在Postman的Headers标签页中,添加第一行Key为Authorization,Value为Bearer sk-prod-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx(确保sk-prod-前缀完整、无换行、无中文引号包裹)。
2、添加第二行Key为Content-Type,Value为application/json(注意不可写作application/json;charset=UTF-8或text/json)。
3、逐字核对Header名称:确认无拼写错误(如Authrization、Conten-Type)、无多余空格、无全角字符,并关闭Postman的“Automatically add Content-Type header”自动补全功能以防覆盖。
三、严格比对Body JSON结构与官方Schema
Perplexity要求Body必须为标准JSON对象,且包含model与messages两个顶层字段;messages必须为非空数组,每个元素须含role与content键,role值仅限"user"或"assistant"。任意嵌套层级偏差均被拒绝。
1、切换到Body标签页,选择raw模式,并从右侧下拉菜单确认格式为JSON(而非Text或JavaScript)。
2、输入最小合法Payload,确保无尾随逗号、无单引号、无未转义双引号:
Perplexity SEO 优化指南 — 如何获得 Perplexity AI 的引用。涵盖 Perplexity 引用行为、面向 Perplexity 答案的内容结构、Perplex...
{
"model": "sonar-medium-online",
"messages": [
{"role": "user", "content": "解释量子纠缠"}
]
}
3、点击“Pretty”按钮让Postman自动格式化并高亮语法错误——若出现红色波浪线或解析失败提示,立即修正JSON结构;特别注意messages数组内对象不可为null,content字符串不可为空字符串或仅空白符。
四、启用Postman Console捕获原始请求流
Postman Console可显示未经框架封装的真实发出字节流,用于识别前端库(如Axios)自动注入的隐藏字段、编码污染或BOM头等隐蔽问题。
1、点击Postman右上角“View” → “Show Postman Console”,打开控制台窗口。
2、在Console中点击左上角“Filter”图标,勾选“Request”与“Response”,取消勾选“Console”和“Collection Runner”。
3、再次发送请求,观察Console中“Request Body”区域显示的原始十六进制与UTF-8文本——确认content字段中无\x00、\uFEFF(BOM)、\r\n混用等非法字节,且所有中文字符显示为正常Unicode序列而非乱码或%编码。
五、使用Postman Tests脚本自动校验必填字段
通过内置JavaScript测试脚本,在响应返回前即时验证请求构造完整性,避免人工遗漏深层嵌套字段约束。
1、切换到Tests标签页,在编辑区粘贴以下校验代码:
pm.test("Body contains required fields", function () {
pm.expect(pm.request.body).to.not.be.null;
pm.expect(pm.request.body.raw).to.include('"model":');
pm.expect(pm.request.body.raw).to.include('"messages":');
});
2、在“Pre-request Script”标签页中添加初始化检查:
if (!pm.request.headers.has('Authorization')) {
throw new Error('Missing Authorization header');
}
if (pm.request.headers.get('Content-Type') !== 'application/json') {
throw new Error('Content-Type must be application/json');
}
3、点击Send,若Tests栏显示红色叉号及对应错误信息,即表明请求尚未满足基础校验门槛,需优先修复脚本所指缺陷。
大量免费API接口:立即使用
涵盖生活服务API、金融科技API、企业工商API、等相关的API接口服务。免费API接口可安全、合规地连接上下游,为数据API应用能力赋能!









