4

我正在尝试使用 superagent 执行 API 调用,但它对我的 api 密钥进行了编码,但被拒绝了。

get(url).query({ key: 'Fmjtd%7Cluu').end(function(err, res) {

密钥被发送为

Fmjtd%257Cluu

任何想法如何使用超级代理来防止这种情况?如果我将它作为“url”部分的一部分,那很好,但如果可能的话,我想将它作为查询数据传递。

4

1 回答 1

0

我对 SuperAgent 不熟悉,但这里是我可以用来解决问题的选项。

  1. 逃脱钥匙。尝试“Fmjtd\%7Cluu”

  2. 由于 SuperAgent 似乎正在应用“encodeURIComponent”来转换密钥以使其对 http 传输安全,因此您可以在传递它之前先“decodeURIComponent”它。但是,这很可能会破坏 SuperAgent(因为他们可能有充分的理由首先对 URI 组件进行编码)。

  3. 发送错误报告并让维护人员创建一个适当的修复程序,而不是我上面建议的黑客攻击

于 2014-10-24T20:52:53.763 回答