node.js 发送 带有中文的http request出错,如何解决?
我想用node去调用百度地图的api,通过url的方式。但是url里面有中文,如果直接把url用浏览器打开,会得到正确的结果(在这里我隐藏了我百度的key),不过在node里面使用request就不能得到正确的结果,我猜是url的encode有问题,查询过后解决不了。
感谢~
var request = require('request');
request(
{ method: 'GET',
header : {'Content-Type' : 'application/json; charset=UTF-8'},
uri: 'http://api.map.baidu.com/place/v2/suggestion?query=北京理工大学®ion=全国&output=json&ak=****hLQKu9ap9fPq5N1ExF1Kk7xe5Eah'
//uri:'http://www.baidu.com'
}
, function (error, response, body) {
// if(response.statusCode == 201){
// console.log('document saved as: http://mikeal.iriscouch.com/testjs/'+ rand)
// } else {
// console.log('error: '+ response.statusCode)
// console.log(body)
// }
res.json({
res:response
})
}
)
使用windwhinny的答案过后,有值返回了,但是格式我看不懂,看起来还是有点像json但是格式有点问题:
正确的返回值如下:
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
如果想对单个字符串转码,就用 encodeURIComponent 这个方法。