Nodejs + Axios 请求数据、odejs使用axios 读取数据乱码转化
发布于 3 个月前 作者 webdashen 462 次浏览 来自 分享

问题是在请求新浪接口数据的时候遇到的: http://hq.sinajs.cn/list=股票代码

nodejs + axios 请求数据,同时解决乱码问题

问题现象: image.png

axios是可以在服务端使用的,推荐代码如下,其中res是express返回数据的操作

const axios = require('axios')
const iconv = require('iconv-lite');

function getSharePrice ({ code, res}) {
  const url = 'http://hq.sinajs.cn/list=' + code
  axios({
    method: 'post',
    url: url,
    responseType : 'stream' //将数据转化为流返回
  }).then(result => {
    let chunks = [];
    result.data.on('data',chunk=>{
        chunks.push(chunk);
    });
    result.data.on('end',()=>{
        let buffer = Buffer.concat(chunks);
        //通过iconv来进行转化。
        let str = iconv.decode(buffer,'gbk');
        if (str) {
          return res.json({
            success: true,
            model: str
          })
        } else {
          return res.json(new BaseError(50009))
        }
    })
  }).catch(error => {
    console.log(error)
    return res.json(new BaseError(50009))
  })
}

亲测有效:结果如下 image.png

回到顶部