You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用带Bearer Token的RestClient时遇StatusCode: UnsupportedMediaType问题

解决RestClient带Bearer Token请求时的UnsupportedMediaType错误

嘿,我碰到过类似的问题,咱们一步步来排查修复:

首先,你遇到的StatusCode: UnsupportedMediaType通常是因为API服务器没识别到请求的媒体类型——虽然你手动加了Content-Type头,但RestClient的AddParameter方法在处理RequestBody时可能和手动设置的头产生冲突,或者没正确传递格式信息。

方案1:使用RestClient内置的AddJsonBody方法(推荐)

RestClient有专门处理JSON请求体的方法,它会自动帮你设置正确的Content-Type头,不用手动添加,完美避免冲突:

var client = new RestClient(requestAPIURL);
var request = new RestRequest(Method.POST);
// 不用手动加Content-Type,AddJsonBody会自动处理
request.AddHeader("Authorization", $"Bearer {token.AccessToken}");
// 直接传入对象,RestClient会自动序列化并设置正确的请求头
request.AddJsonBody(jsonData);
var response = client.Execute(request);

方案2:调整AddParameter的使用方式

如果你还是想用AddParameter,可以试试去掉手动添加的Content-Type头——因为当你指定application/json类型的RequestBody时,AddParameter应该会自动设置这个头,重复添加反而可能导致问题:

var client = new RestClient(requestAPIURL);
var request = new RestRequest(Method.POST);
request.AddHeader("Authorization", $"Bearer {token.AccessToken}");
// 移除手动的Content-Type,让AddParameter自动处理
request.AddParameter("application/json", JsonConvert.SerializeObject(jsonData), ParameterType.RequestBody);
var response = client.Execute(request);

方案3:检查RestClient版本

如果你用的是比较旧的RestSharp版本,AddParameter处理RequestBody的逻辑可能存在bug,建议升级到最新稳定版后再尝试上面的方案。

额外排查点

  • 确认jsonData序列化后的JSON格式完全正确,没有语法错误
  • 可以先用Fiddler或Postman模拟请求,验证API本身是否支持application/json格式,排除服务器端的问题

内容的提问来源于stack exchange,提问作者SASIDHAR.C

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.14 07:27:16