今天在做一個(gè)微信小程序的時(shí)候,用到豆瓣API v2 一直400 badrequest,
代碼如下
const api = require('../../utils/api.js')
Page({
data:{
movies:[],
hidden:false
},
onLoad:function(){
// this.getMovies("30")
wx.request({
url:"https://api.douban.com/v2/movie/coming_soon",
method:"GET",
success:function(res){
console.log(res)
}
})
},
// getMovies:function(num){
// let url = api.searchMovies +`?count=${num}`,
// self = this;
// wx.request({
// url:url,
// method:"GET",
// success:function(res){
// let data = res.subjects
// console.log(data)
// self.setData({
// hidden:true,
// movies:data
// })
// }
// })
// }
})
嘗試換了好多個(gè)接口地址都報(bào)400,然而我用瀏覽器就可以成功拿到數(shù)據(jù)了,折騰一下午不知道為什么不行...
小伙看你根骨奇佳,潛力無限,來學(xué)PHP伐。
跟你的問題一樣,而且設(shè)置了'Content-Type': 'application/json',依然顯示400 (Bad Request),不知道是否解決?
解決了,參考:http://www.cnblogs.com/bubble...
可能是豆瓣方面對(duì)接口的請(qǐng)求來源做了限制,可以從 UA 方面排查一下,用微信小程序的 UA 發(fā)起一個(gè)請(qǐng)求試試
微信允許小程序跨域并不意味著豆瓣允許明顯不正常的 UA 獲取資源
你的問題有點(diǎn)意思:
請(qǐng)你試一下,REQUEST請(qǐng)求頭設(shè)一下Content-Type參數(shù)。
wx.request({
url: "https://api.douban.com/v2/movie/coming_soon",
header: {
'Content-Type': 'application/json'
},
。。。。
我抓包比較過,有三種情況,有一種情況會(huì)被豆瓣400拒絕:
1,HTTP請(qǐng)求不帶Content-Type參數(shù),,服務(wù)端正常返回。
抓CHROME打開鏈接時(shí),就是這種情況。
2,HTTP請(qǐng)求帶這種形式的: Content-Type: application/json, application/json, 正常。
在微信小程序wx.Request時(shí),這樣設(shè)參數(shù),就會(huì)這樣請(qǐng)求,看來會(huì)把同名參數(shù)值組合一下。
header: {
'Content-Type': 'application/json'
},
3,HTTP請(qǐng)求帶這種形式的:Content-Type: application/json, 會(huì)收到400
在微信小程序wx.Request時(shí),好象自己不設(shè)Content-Type,會(huì)帶上這種形式參數(shù)。
補(bǔ)充說一下,比對(duì)過,User-Agent 參數(shù)應(yīng)該無關(guān)。
header:{
"Content-Type":"json"
},
這樣做ide能請(qǐng)求成功,在手機(jī)里又不行了,報(bào)400的錯(cuò)誤