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

Tenor API的Axios GET请求仅/search可用,/random无法正常工作

解决Axios调用Tenor /random接口失败的问题

可能的原因及对应解决方案

1. TypeScript类型定义与接口实际返回不匹配

Tenor的/random和/search接口返回的数据结构可能存在细微差异,当前的TypeScript类型断言可能导致解析异常。

  • 解决方法:先移除泛型约束,直接打印原始返回数据,对比结构差异:
export default async function getPadoru() {
  try {
    const res = await axios.get(`https://g.tenor.com/v1/random?q=padoru&key=LIVDSRZULELA&limit=10&media_filter=minimal`);
    console.log('原始返回数据:', res.data);
    return res;
  } catch (err) {
    console.error('请求失败:', err);
  }
}

根据打印结果调整Result和Results的类型定义,比如部分字段名可能不同(例如media_formats替代media)。

2. 请求头缺失导致被拦截

浏览器会自动携带User-Agent等请求头,而Axios在非浏览器环境(如Node.js)下的默认请求头可能被Tenor的反爬策略拦截。

  • 解决方法:手动添加浏览器风格的User-Agent头:
export default async function getPadoru() {
  try {
    const res = await axios.get(`https://g.tenor.com/v1/random?q=padoru&key=LIVDSRZULELA&limit=10&media_filter=minimal`, {
      headers: {
        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36'
      }
    });
    console.log(res.data);
    return res;
  } catch (err) {
    console.error('请求错误:', err.response?.data || err.message);
  }
}

3. 请求参数不合法

Tenor的/random接口对limit参数的限制可能与/search不同,比如部分版本的/random接口limit最大值为5,超出范围会返回错误。

  • 解决方法:尝试将limit改为1或5,测试请求是否正常:
`https://g.tenor.com/v1/random?q=padoru&key=LIVDSRZULELA&limit=5&media_filter=minimal`

4. 捕获详细错误信息

当前代码未处理异常,无法看到具体错误原因。添加try/catch块捕获并打印错误详情,比如HTTP状态码、错误响应内容:

export default async function getPadoru() {
  try {
    const res = await axios.get<Results>(`https://g.tenor.com/v1/random?q=padoru&key=LIVDSRZULELA&limit=10&media_filter=minimal`);
    console.log(res);
    return res;
  } catch (error) {
    if (axios.isAxiosError(error)) {
      console.error('HTTP错误状态:', error.response?.status);
      console.error('错误响应内容:', error.response?.data);
    } else {
      console.error('未知错误:', error);
    }
    throw error;
  }
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 08:55:18