微信小程序请求豆瓣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);
结果是一样的。
网友评论