【问题标题】:What's the problem with RapidApi not seeing the key header?RapidApi 看不到密钥头有什么问题?
【发布时间】:2020-09-18 15:55:38
【问题描述】:

所以我在我的 Angular Node.js 应用程序中有这个方法:

async translateWord(word: string) {
const key = '*I put it here*';

const translation = await axios({
  "method": "POST",
  "url": "https://google-translate1.p.rapidapi.com/language/translate/v2",
  "headers": {
    "content-type": "application/octet-stream",
    "x-rapidapi-host": "google-translate1.p.rapidapi.com",
    "x-rapidapi-key": key,
    "useQueryString":true
  },
  "data": {
    "source": "en",
    "q": word,
    "target": "ru"
  }
});

console.log(translation.data);
}

调用方法的结果是

POST https://google-translate1.p.rapidapi.com/language/translate/v2 502(错误网关)

当我在 Chrome 开发工具窗口中右键单击失败的请求并在新选项卡中打开它时,我收到以下消息:

{"message":"缺少 RapidAPI 应用程序密钥。请访问 https://docs.rapidapi.com/docs/keys 了解如何获取您的 API 应用程序密钥。"}

奇怪的是,我的标题中实际上有密钥:proof

当我通过 RapidApi 接口执行相同的代码 sn-p 时,我也得到了正确的翻译。

【问题讨论】:

  • 查看文档,标头content-type 似乎包含值application/x-www-form-urlencoded,并且您的请求中缺少标头“accept-encoding”:“application/gzip”。你能和他们再试一次吗?
  • @MichaelD 感谢您的回答。我更改了它,但仍然有相同的错误+新错误:拒绝设置不安全的标头“accept-encoding”。
  • 那我不太确定。
  • @MichaelD ok tnx 无论如何都需要你的帮助

标签: node.js angular api axios translation


【解决方案1】:

RapidAPI 支持通过查询参数传递 API 密钥。您可以通过在链接中包含以下语法来做到这一点:

https://example.p.rapidapi.com/?rapidapi-key=***************************

但是,请记住,您的 RapidAPI 密钥会在您的整个帐户中使用。如果链接可公开访问,请小心泄露您的密钥。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-01
    • 2022-06-13
    • 1970-01-01
    • 2014-01-05
    相关资源
    最近更新 更多