获取不到图书信息
来源:7-3 图书录入功能 - 获取豆瓣图书信息接口2
西岚Silan
2018-06-15
const https = require('https') module.exports = async ctx => { // 就是这里出问题,返回的http没有相应体,ctx.request.body 为空 console.log('this is ctx-------------------------', ctx, '-------------------------------') const { isBin, openId } = ctx.request.body console.log('添加图书', isBin, openId) if (isBin && openId) { let url = 'https://api.douban.com/v2/book/isbn/' + isBin const bookinfo = await getJson(url) console.log('bookinfo---------------------------', bookinfo, '-------------------------------') } } function getJson(url) { console.log('url-------------------------------', url, '-------------------------------') return new Promise((resolve, reject) => { // 返回的是一个流 https.get(url, res => { let urlData = '' // 每次获取新数据都累加 res.on('data', data => { urlData += data }) res.end('data', data => { console.log('data-------------------------', data, '-------------------------------') const bookinfo = JSON.parse(urlData) if (bookinfo.title) { resolve(bookinfo) } reject(bookinfo) }) }) }) }
返回的http没有相应体,ctx.request.body 为空,所以我在这里就获取不到isbin和openId,
但是我在me.vue里面,传入的isbin,opendId都是正常的
async addBook(isBin) { console.log(isBin, this.userinfo.openid) const res = await post('/weapp/addbook', { isBin, openid: this.userinfo.openId }) console.log(res) if (res.code === 0 && res.data.title) { showSuccess('添加成功', `${res.data.title}添加成功`) } }, scanBook() { wx.scanCode({ success: res => { if (res.result) { this.addBook(res.result) console.log(res.result) } } }) } },
能够打印出isBin和openId
还有就是,我把老师您的代码复制下来运行,也是这个问题,就是获取不到图书的信息
写回答
1回答
-
你request的时候 加上ua的header试试 我现在本地代码是OK的
比如把user-agend设置为 "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36" 模拟真实的用户
042018-07-27
相似问题