Viv*_*vek 2 node.js facebook-graph-api
在使用Facebook graph api时,我使用https.get来请求facebook用户数据.
var optionsP = {
host: 'graph.facebook.com',
path: '/me?access_token=XXXX'
};
https.get(optionsP, function(resp) {
resp.on('data', function(d) {
console.log('ondata')
console.log(d.length)
process.stdout.write(d)
});
}).on('error', function(e) {
console.error(e);
});
Run Code Online (Sandbox Code Playgroud)
但响应数据分为两部分!第一次打印最多1034个字符,然后同样的回叫将工作并打印剩余的1347个字符.这些部分回应的原因是什么?
这很正常.resp是一个流.它是ClientResponse对象,实现可读的流接口.以下是文档:http://nodejs.org/api/http.html#http_http_clientresponse
您可以将输出传输到接受流的某个位置,也可以将其存储在缓冲区中,直到您收到"结束"事件.
这是一个将数据存储在内存中的String中的示例,直到它全部到达:
https.get(optionsP, function(resp) {
resp.setEncoding(); //Now the data is a string!
var store = "";
resp.on('data', function(d) {
store += d;
});
resp.on('end', function() {
console.log("this is all: " + store);
});
}).on('error', function(e) {
console.error(e);
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2262 次 |
| 最近记录: |