2017-05-28 93 views
0
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); 

嗨,请求qs键值编码,如何禁用编码字符串?

的apiKey改为错键。

我应该禁用字符串编码加上要求QS哪个选项?

或什么是另类的方式来获得的Json API?

回答

2

它的原因是你的api密钥是用encodeURIComponent()作为查询字符串进行URI编码的,所以像%3D这样的特殊字符变成25%3D时,如果你使用decodeURIComponent,你可以拥有正确的apiKey正确编码

var string = "T%2BLkADWTX0OzgMMDmEPHffxQNYcgNMyfYJcXyR0cl0%2BNe8w0g%3D%3D" 
    decodeURIComponent(string) // "T+LkADWTX0OzgMMDmEPHffxQNYcgNMyfYJcXyR0cl0+Ne8w0g==" 

PS:你对SO

不应该共享API密钥