微信小程序访问豆瓣电影api的实现方法


Posted in Javascript onMarch 31, 2019

解决微信小程序调豆瓣电影(小说)api时显示400、403问题

以获取豆瓣热映电影为例:

请求接口:

我这里使用的是uni-app框架(多端发布的一款框架,基于vue语法,正在踩坑中)

onLoad() {
  uni.request({
   url: 'http://api.douban.com/v2/movie/in_theaters',
   method: 'GET',
   data: {},
   success: res => {
    console.log(res)
   },
   fail: () => {},
   complete: () => {}
  });
 },

来看看返回了什么:

微信小程序访问豆瓣电影api的实现方法

原因是豆瓣那边设置了对小程序的访问权限

解决办法总是有的!

1.设置nginx代理:

在nginx.conf加入以下配置:

location /v2/
{ 
proxy_store off; proxy_redirect off;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Real-IP $remote_addr; 
proxy_set_header Referer 'no-referrer-when-downgrade'; 
proxy_set_header User-Agent 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/62.0.3202.94 Safari/537.36'; 
proxy_connect_timeout 600;
proxy_read_timeout 600;
proxy_send_timeout 600;
proxy_pass https://api.douban.com/v2/; 
}

重启nginx

修改小程序那边的请求路径为http://localhost/v2/movie/top2502.

2.更改官方域名:

替换官方给的域名http://api.douban.comhttps://douban.uieee.com,https://douban.uieee.com是某大佬搭建的代理,相当于别人替你去做了方法一的事情,你只需要搬过来用就行了。

似乎可以了~我们来看看现在获取到了data没有

微信小程序访问豆瓣电影api的实现方法

还差一步,修改请求头

header:{
   "Content-Type":"application/xml"
  },

再来看看吧~

微信小程序访问豆瓣电影api的实现方法

获取一下杭州的热映电影的前四个是什么吧:

onLoad() {
  uni.request({
   url: 'https://douban.uieee.com/v2/movie/in_theaters',
   method: 'GET',
   header:{
    "Content-Type":"application/xml"
   },
   data: {
    start: 0,
    count: 4,
    city: '杭州'
   },
   success: res => {
    console.log(res)
   },
   fail: () => {},
   complete: () => {}
  });
 },

附上豆瓣电影的常用接口:

1.获取正在热映的电影:https://douban.uieee.com/v2/movie/in_theaters

访问参数:

start : 数据的开始项

count:单页条数

city:城市

2.获取电影Top250:https://douban.uieee.com/v2/movie/top250

访问参数:

start : 数据的开始项

count:单页条数

3.获取即将上映电影:https://douban.uieee.com/v2/movie/coming_soon

访问参数:

start : 数据的开始项

count:单页条数

4.电影搜索:https://douban.uieee.com/v2/movie/search

访问参数:

start : 数据的开始项

count:单页条数

q:要搜索的电影关键字

tag:要搜索的电影的标签

5.电影详情:https://douban.uieee.com/v2/movie/subject/:id

访问参数:电影id

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
gridpanel动态加载数据的实例代码
Jul 18 Javascript
用javascript判断IE版本号简单实用且向后兼容
Sep 11 Javascript
Javascript中的回调函数和匿名函数的回调示例介绍
May 12 Javascript
实例详解angularjs和ajax的结合使用
Oct 22 Javascript
js表单验证实例讲解
Mar 31 Javascript
jquery取消事件冒泡的三种方法(推荐)
May 28 Javascript
基于JavaScript实现自定义滚动条
Jan 25 Javascript
详解vue事件对象、冒泡、阻止默认行为
Mar 20 Javascript
详解Vue使用命令行搭建单页面应用
May 24 Javascript
纯js实现隔行变色效果
Nov 29 Javascript
详解关于React-Router4.0跳转不置顶解决方案
May 10 Javascript
使用Promise封装小程序wx.request的实现方法
Nov 13 Javascript
vue项目首屏打开速度慢的解决方法
Mar 31 #Javascript
jQuery事件blur()方法的使用实例讲解
Mar 30 #jQuery
Javascript实现一朵从含苞到绽放的玫瑰
Mar 30 #Javascript
使用post方法实现json往返传输数据的方法
Mar 30 #Javascript
微信小程序使用wx.request请求服务器json数据并渲染到页面操作示例
Mar 30 #Javascript
微信公众平台获取access_token的方法步骤
Mar 29 #Javascript
vue路由--网站导航功能详解
Mar 29 #Javascript
You might like
2020年4月新番动漫目录 官方宣布4月播出的作品一览
2020/03/08 日漫
PHP cron中的批处理
2008/09/16 PHP
PHP中error_reporting()函数的用法(修改PHP屏蔽错误)
2011/07/01 PHP
php实现无限级分类
2014/12/24 PHP
PHP在线调试执行的实现方法(附demo源码)
2016/04/28 PHP
jquery判断单个复选框是否被选中的代码
2009/09/03 Javascript
JavaScript 和 Java 的区别浅析
2013/07/31 Javascript
javascript常用的正则表达式实例
2014/05/15 Javascript
JavaScript的类型、值和变量小结
2015/07/09 Javascript
基于jQuery实现二级下拉菜单效果
2016/02/01 Javascript
Vue 去除路径中的#号
2018/04/19 Javascript
npm配置国内镜像资源+淘宝镜像的方法
2018/09/07 Javascript
JS实现4位随机验证码
2020/10/19 Javascript
在antd Table中插入可编辑的单元格实例
2020/10/28 Javascript
[02:29]大剑、皮鞭、女装,这届DOTA2勇士令状里都有
2020/07/17 DOTA
Python中time模块和datetime模块的用法示例
2016/02/28 Python
Python数据结构与算法之列表(链表,linked list)简单实现
2017/10/30 Python
python使用xslt提取网页数据的方法
2018/02/23 Python
Python3基于sax解析xml操作示例
2018/05/22 Python
Python3对称加密算法AES、DES3实例详解
2018/12/06 Python
Django处理多用户类型的方法介绍
2019/05/18 Python
Python实现一个带权无回置随机抽选函数的方法
2019/07/24 Python
python3用urllib抓取贴吧邮箱和QQ实例
2020/03/10 Python
浅谈opencv自动光学检测、目标分割和检测(连通区域和findContours)
2020/06/04 Python
python 如何利用argparse解析命令行参数
2020/09/11 Python
python统计mysql数据量变化并调用接口告警的示例代码
2020/09/21 Python
python 制作本地应用搜索工具
2021/02/27 Python
拉飞逸官网:Lafayette 148 New York
2020/07/15 全球购物
JAVA语言如何进行异常处理,关键字:throws,throw,try,catch,finally分别代表什么意义?在try块中可以抛出异常吗?
2013/07/02 面试题
材料成型及控制工程专业求职信
2014/06/19 职场文书
司考复习计划
2015/01/19 职场文书
大学生就业意向书
2015/05/11 职场文书
合同审查法律意见书
2015/06/04 职场文书
《雪地里的小画家》教学反思
2016/02/16 职场文书
canvas多重阴影发光效果实现
2021/04/20 Javascript
2022新作动画《福星小子》释出宣传影片 加入内田真礼&宫野真守配音演出
2022/04/08 日漫