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

调用TMDB Discover接口时RestSharp返回text/html而非JSON如何解决?

首先排查并修复以下几个问题即可解决:

1. 修正请求路径

TMDB的discover/movie接口对路径格式要求严格,你当前代码里路径末尾多了一个斜杠,会触发API返回404错误页面(也就是你拿到的text/html内容),把路径末尾的斜杠删掉:

// 修正前
var client = new RestClient($"{_settings.TMDBhost}/discover/movie/");
// 修正后
var client = new RestClient($"{_settings.TMDBhost}/discover/movie");

同时确认你的_settings.TMDBhost配置值正确,完整的TMDB接口前缀应该带版本号,不要漏了/3后缀。

2. 增加HTTP状态校验

你当前代码没有判断接口返回的状态是否正常,直接反序列化响应内容,遇到错误时无法定位问题,增加状态校验逻辑:

//Calling Api 
var response = client.Get(request);
// 增加状态校验
if (!response.IsSuccessful)
{
    // 这里可以输出response.StatusCode和response.Content方便排查
    throw new Exception($"TMDB接口请求失败,状态码:{response.StatusCode},响应内容:{response.Content}");
}

3. 明确指定Accept请求头

主动声明要求接口返回JSON格式,避免API默认返回其他格式:

//Init rest request
var request = new RestRequest(Method.GET);
request.RequestFormat = DataFormat.Json;
// 新增Accept头
request.AddHeader("Accept", "application/json");

4. 校验sort参数合法性

TMDB的sort_by参数要求必须是字段.排序方向的格式,比如popularity.desc(按热度降序)、vote_average.asc(按评分升序),如果传入的参数不符合规则,也会触发API返回错误响应。

修改完成后如果还有问题,可以通过上面加的校验逻辑输出的状态码和响应内容定位具体错误。

内容的提问来源于stack exchange,提问作者goransb5

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 12:09:01