获取不到图书信息
来源: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
相似问题