新浪微博api的一个坑
调用 http://open.weibo.com/wiki/OAuth2/access_token这个接口
看文档是
HTTP请求方式
POST
请求参数
...省略....
用node现写个个https的client 模拟post数据过去
var options = {
hostname: 'api.weibo.com',
port: 80,
path: api,
method: 'POST'
};
req = http.request(options , function(){...})
req.write(data)
req.end()
第一个报错 socket hang up
连蒙带搜 发现是需要有个设置 port : 443
好吧 加上 继续...
第二个报错 STATUS: 411
检查发现是headers里没传content-length
好吧 加上 继续...
var options = { hostname: 'api.weibo.com', path: api, method: 'POST' , port: 443 ,headers: { 'Content-Length': data.length || 0} };
然后调试过去 微博终于返回了 但是个失败信息
'{"error":"invalid_request","error_code":21323,"request":"/2/oauth2/access_token","error_uri":"/2/oauth2/access_token","error_description":"miss client id or secret"}'
返回检查了自己的代码也未解决,小睡了会后继续google 有人说 微博是只看get参数的 也是就是说post过去的不认.... 不认你文档上写毛
HTTP请求方式 POST
啊 啊 啊
path: api 修改为 path: api+ '?' + data ,参数get也传过去,,,终于过去了.....