在http请求库中发送params

时间:2015-08-10 22:16:31

标签: node.js express

所以这个问题与一个名为request https://github.com/request/request

的流行快递库(我认为)有关

我一直在浏览其README.md,我或者是盲目的,或者我很难找到在GET请求中发送params的方法。 我使用的api服务告诉我

"send a GET request to the /1/login endpoint with username 
and password as URL-encoded parameters:"

我不相信我应该使用流式传输,表单,http身份验证,自定义http标头,OAuth签名,代理,Unix域SOckets,TLS / SSL协议。我是否对其进行编码并将其作为查询参数发送?这似乎并不安全,因为我使用该服务登录用户。 交叉手指,这不是一个愚蠢的问题

1 个答案:

答案 0 :(得分:1)

使用请求库发送查询字符串参数使用qs选项:

request({
  method: 'GET',
  uri:'https://google.com/search',
  qs: {
    q: 'search query',
  }
}, function(err, res, body){
  console.log(body)
})

谨慎对待凭据是正确的。 大多数应用程序的IMO,您可以在整个站点中使用HTTPS,POST用户名/密码作为表单正文或JSON,并依靠TLS来保护传输中的数据。 混合HTTP和HTTPS是有风险的,例如包含指向https://domain.com/login的链接的HTTP页面容易受到" sslstrip"攻击(攻击者中毒http代码,用http://attacker.com/?spoof=https://domain.com/login替换链接。)

我建议不要在查询字符串中使用用户名/密码进行( in-browser )GET请求,因为它们会显示在地址栏中,有人可以查看用户的内容肩。