【微信小程序】请求豆瓣API报403的三种解决方法

微信小程序使用wx.request API请求豆瓣公开api的时候,会报一个403(Forbidden)的错误。
这是为什么呢?是由于来自小程序的调用过多,豆瓣来自于小程序的调用被禁止。这里收集以下三种方法解决此问题(设置代理):

1、使用 https://douban.uieee.com

2、使用 https://www.zhihu.com/question/265806694/answer/302894881

3、使用 http://t.yushu.im

以上两种方法均是设置代理请求豆瓣API数据。

403错误出现说明:

首先使用了豆瓣的电影API,访问地址为http://api.douban.com/v2/movie/in_theaters,该地址在Safari浏览器和谷歌浏览器调用时都会直接返回数据

	// 小程序调用豆瓣API方法
    const _this = this
    wx.request({
      url: 'http://api.douban.com/v2/movie/in_theaters',
      header: {
        'content-type': 'application/json'
      },
      success: function (res) {
        _this.setData({
          list: res.data.subjects
        })
        console.log(res.data.subjects)
      }
    })

在这里插入图片描述

使用方法:

把 https://www.api.douban.com 换成以上任意一个代理即可。

例如: url: 'https://api.douban.com/v2/movie/subject/' + options.id 
		或 https://api.douban.com/v2/movie/in_theaters?start=0&count=6
换成: url: 'https://douban.uieee.com/v2/movie/subject/' + options.id
		或 https://douban.uieee.com/v2/movie/in_theaters?start=0&count=6
即可访问。

在设置好之后,请求完成之后会出现 400 (Bad Request) 的错误。解决方法如下:
把 ‘Content-Type’: ‘application/json’
改成 ‘Content-Type’: ‘application/xml’

或者将‘Content-Type’的值直接设置为'json',切记不能是 application/json 或 ' '。

如过使用了APPID,则会出现以下错误,https://www.zhihu.com 不在以下 request 合法域名列表中。
在这里插入图片描述
出现这个问题的原因是:微信要求配置以https为开头的合法域名,需要在后台的设置—开发设置—服务器域名中配置即可。

也使用Nginx:详细信息可参考:

https://blog.csdn.net/rolan1993/article/details/80253566

转载请注明出处!

猜你喜欢

转载自blog.csdn.net/weixin_42614447/article/details/88067112