perplexity api返回415错误主因是content-type未设为application/json或authorization/request体不合规。需显式设置content-type: application/json、authorization头有效、accept头匹配响应类型,并确保请求体为合法json序列化。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

如果您调用Perplexity API时收到“Unsupported Media Type”错误,通常是因为请求头中未正确声明Content-Type,或其值与服务器期望的格式不匹配。Perplexity API明确要求请求体为JSON格式,并强制验证Content-Type头是否为application/json。以下是解决此问题的步骤:
一、显式设置Content-Type为application/json
该方法确保HTTP请求头携带服务器可识别的媒体类型标识,避免被默认为text/plain或application/x-www-form-urlencoded等不支持类型。
1、在发起POST请求时,于Headers中手动添加键值对:Content-Type: application/json。
2、若使用Python requests库,应使用json=参数而非data=参数发送数据,例如:requests.post(url, json=payload)。
3、若使用JavaScript Fetch API,需在init对象中明确指定headers:{'Content-Type': 'application/json'},并确保body为JSON.stringify(payload)。
4、若使用Postman,将Body类型切换为raw → JSON,工具将自动注入正确的Content-Type头。
二、校验Authorization与Accept头协同配置
仅设置Content-Type不足以通过Perplexity服务端校验,必须同步满足身份认证与响应格式声明要求,否则仍可能触发415或401错误。
1、确认Headers中已包含:Authorization: Bearer pplx-xxxx...,且密钥有效未过期。
2、根据是否启用流式响应,设置Accept头:Accept: text/event-stream(启用stream)或Accept: application/json(禁用stream)。
3、禁止同时设置Accept为text/plain或*/*,此类通配值将导致服务器拒绝解析。
4、移除任何重复或冲突的Content-Type声明,例如避免在body构造中二次嵌套application/json字符串。
三、检查请求体序列化方式是否合规
即使Content-Type头正确,若实际发送的请求体未按JSON语法序列化,服务器仍将判定为格式错误;常见于手动拼接字符串或误用StringContent等低级构造器。
1、禁用直接使用new StringContent(jsonStr, Encoding.UTF8)而不传入mediaType参数的方式,该方式默认设为text/plain。
2、若必须使用StringContent,请显式传入第三个参数:new StringContent(jsonStr, Encoding.UTF8, "application/json")。
3、验证payload对象是否为合法JSON结构:确保无undefined、NaN、函数或循环引用字段,所有键名用双引号包裹。
4、在发送前打印原始请求体字符串,确认其以{或[开头,且不含HTML标签、XML注释或BOM头字节。
大量免费API接口:立即使用
涵盖生活服务API、金融科技API、企业工商API、等相关的API接口服务。免费API接口可安全、合规地连接上下游,为数据API应用能力赋能!










