Android使用TheMovieDB的/find/{external_id}、IMDB ID获取及接口报错咨询
问题1:通过IMDB API获取对应电影ID的实现方案
- 首先前往IMDB开发者平台申请对应API调用权限,根据你的使用场景选择免费/付费调用套餐,拿到专属API密钥
- 构造IMDB搜索接口请求,核心查询参数如下:
s:传入待搜索的电影标题,优先用原始英文标题匹配准确率更高type:固定传movie过滤剧集、综艺等非电影内容y(可选):传入电影上映年份,可大幅降低重名电影的匹配误差
- 解析接口返回的JSON数据,
Search数组下匹配度最高的第一条结果的imdbID字段即为你需要的目标ID,建议增加返回结果的上映日期、海报信息二次校验,避免拿到重名内容的错误ID
问题2:TheMovieDB API调用UnknownHostException报错排查
- 该报错本质是DNS域名解析失败,和你直接传入电影标题搜索的操作完全无关,可按以下顺序排查:
- 确认测试设备/模拟器网络正常,可先通过自带浏览器访问TheMovieDB官网验证网络连通性,排除模拟器断网、全局代理配置错误的问题
- 检查你请求的API域名是否填写正确:TheMovieDB的公开API接口域名是
api.themoviedb.org,而非你报错日志里的www.themoviedb.org,域名填错是该报错最常见的诱因 - 若测试设备系统为Android 9及以上,确认你的网络安全配置未限制HTTPS请求,若存在自定义根证书、抓包工具代理的情况可先关闭后重试
- 额外提示:你当前用的
Find接口仅支持通过外部ID(如IMDB ID)查询条目,若要直接通过电影标题搜索,需要调用/search/movie接口,该接口选型问题和本次报错无关,但会影响你后续搜索功能的正常实现
内容的提问来源于stack exchange,提问作者Hamilton Hardy
相关产品推荐
相关产品推荐

