请求qs键值编码,如何禁用编码字符串?
问题描述:
var Request = require("request")
var options = {
url: option.apiUrl,
qs: {
apiKey: "T%2BLkADWTX0OzgMMDmEPHffxQNYcgNMyfYJcXyR0cl0%2BNe8w0g%3D%3D",
}
json: true
}
function handleResponse (error, response, body) {
console.log(response) //apiKey is changed to T%252BLkADWTX0OzgMMDmEPHffxQNYcgNMyfYJcXyR0cl0%252BNe8w0g%253D%253D
}
Request(options, handleResponse);
的apiKey改为错键。
我应该禁用字符串编码加上要求QS哪个选项?
或什么是另类的方式来获得的Json API?
答
它的原因是你的api密钥是用encodeURIComponent()作为查询字符串进行URI编码的,所以像%3D这样的特殊字符变成25%3D时,如果你使用decodeURIComponent,你可以拥有正确的apiKey正确编码
var string = "T%2BLkADWTX0OzgMMDmEPHffxQNYcgNMyfYJcXyR0cl0%2BNe8w0g%3D%3D"
decodeURIComponent(string) // "T+LkADWTX0OzgMMDmEPHffxQNYcgNMyfYJcXyR0cl0+Ne8w0g=="
PS:你对SO
不应该共享API密钥