正常往sina发送HTTP请求,但是会不时报如下错误, POST: api.weibo.com:443 /2/statuses/repost.json access_token=2.00rhElVDGI631Ee549f6f303v86EQB&id=3534310755900989&status=imax_check
Error: socket hang up at SecurePair.error (tls.js:948:15) at EncryptedStream.CryptoStream._done (tls.js:432:17) at EncryptedStream.CryptoStream._pull (tls.js:577:12) at SecurePair.cycle (tls.js:866:20) at EncryptedStream.CryptoStream.end (tls.js:405:13) at Socket.onend (stream.js:66:10) at Socket.EventEmitter.emit (events.js:123:20) at TCP.onread (net.js:417:51) 有人知道啥原因不?
data = ‘access_token=2.00rhElVDGI631Ee549f6f303v86EQB&id=3534310755900989&status=imax_check’ var options = { hostname: ‘api.weibo.com’, port: 443, path: ‘/2/statuses/repost.json’, method: ‘POST’ };
var req = http.request(options, function(res) { console.log('STATUS: ’ + res.statusCode); }); });
req.on(‘error’, function(e) { console.log('problem with request: ’ + e.message); });
// write data to request body req.write(‘data\n’); req.end();
出错的代码和这个一模一样,我这边只有一个环境会不时的抱着个错,我看过源码包,貌似是ssl什么地方出错了,手动运行怎么都不能重现,但是就会时不时的发生这种错。。。十分无奈。
或许是新浪服务器端的不作为吧。
我的运行结果: $ node test.js STATUS: 411
443不该是用https模块来进行访问吗?
我的关于443的回复怎莫不见了?
Jackson 对 443 的建议是对的。可是我改用 https 得到相同的结果。
$ node test.js
STATUS: 411
411错误码是你post时http头content-length不对,你代码里没有发这个header,基本上4xx错误码都是客户端请求错误引起的