qq音乐歌单消息请求到的和原本的不一样
发布于 7 年前 作者 mynamexiaohui 4284 次浏览 来自 问答

qq音乐歌单消息数据IGW(RRN0ET~Z`JC@W65QRHX.png 我获取到的数据QQ图片20171010142125.png 我的代码 apiRoutes.get(’/getSongList’, function (req, res) { var url = “https://c.y.qq.com/qzone/fcg-bin/fcg_ucc_getcdinfo_byids_cp.fcg

axios.get(url, { headers: { referer: ‘https://y.qq.com’, host: ‘c.y.qq.com’ }, params: req.query }).then((response) => { res.json(response.data) }).catch((e) => { console.log(e) }) }) 我百度到有人说这个叫防盗链,我已经把referer改成和qq那边的一样可还是不行 希望大家能看看什么问题,谢谢

8 回复

。。。为什么要在浏览器里改 referer,浏览器不能伪造请求头的,要在服务端做。用 Node 吧。LZ 应该也不知道 curl,postman 吧。

@ianchn 不知道,能不能详细说一下,我这个就是用axios写的

@mynamexiaohui 在 Node 里用 axios。

@ianchn 我这个就是写在node里面的,可是不行,我其他的也像这样写了,可以获取到

@ianchn 我用了您说的postman,出来的结果和我出来的时一样的~~ J6}{G8QGK~1R8FTUJT81XLB.png 麻烦你了

var request = require("request");

var options = { method: 'GET',
  url: 'https://c.y.qq.com/qzone/fcg-bin/fcg_ucc_getcdinfo_byids_cp.fcg',
  qs: { type: '1', disstid: '2684402496', outCharset: 'utf-8' },
  headers: 
   { referer: 'https://y.qq.com/' } };

request(options, function (error, response, body) {
  if (error) throw new Error(error);
  var ret = JSON.parse(body.match(/({.*})\)$/)[1])
  console.log(ret);
});

复制粘贴到 Node 里运行吧。

@ianchn 虽然不是太懂,但是非常感谢你,谢谢

@mynamexiaohui 你好,我遇到了和你一样的问题,请问你解决了么

回到顶部