微信小程序请求豆瓣api踩坑

2018-05-15  本文已影响205人  Mr绍君

微信小程序请求豆瓣api的时候,会报一个403(Forbidden)的错误,原因是小程序把豆瓣公开的api给禁掉了。所以我们需要使用代理。

我在知乎上找了篇提供免房费代理的,我们只要把https://api.douban.com换成我们代理的地址,其他的不变。
https://www.zhihu.com/question/265806694/answer/302894881

设置好代理之后,可能还会遇到一个400 badrequest的错误,这是什么原因呢?

我们先把请求头header设置好,默认为

  header: {
    'Content-Type': 'application/json'
}

但是设置好之后,依然会报400的错误。

现在我们把 'Content-Type': 'application/json'改成 'Content-Type': 'application/xml',再请求一下,发现好了。

感觉这个地方是个bug,其实不一定是xml,其他的也行,反正就是不能是json,比如直接把application/xml设置为空,或者直接设置为json都可以。


如果一时找不到合适的代理,也可以自己写个服务器中转一下。

var express = require("express");
var app = express();
var request = require('request');

app.get("/*", (req, res, next)=> {
    request('https://api.douban.com' + req.url, function(error, response, body) {
        res.send(body);
    });
})

app.listen(3000);

结果是一样的。

上一篇下一篇

猜你喜欢

热点阅读