1. 程式人生 > >nodejs http request呼叫rpc介面

nodejs http request呼叫rpc介面

var data = {"jsonrpc": "2.0", "id": 0, "method": method, "params": params};
	data = JSON.stringify(data);
	var opt = {
	    host: ip,
	    port: port,
	    method: 'POST',
	    path:'/rpc',
	    headers:{
	        "Content-Type": 'application/json',
	        "Accept": 'application/json',
	        "Content-Length": data.length
	    }
	}
	 
	var request = http.request(opt, function(result) {
		var rpcResult = '';
		var datas = '';
		result.on('data',function(data) {
			try {
				datas += data;  // 注意:返回json資料量大時,會擷取分批返回
			} catch(e) {
				console.log(e);
			}
	    }).on('end', function(){
	    	rpcResult = JSON.parse(datas).result; 
	    	resolve(rpcResult);
	    });
	}).on('error', function(e) {
	    console.log("error: " + e.message);
	    reject(e);
	});

	request.write(data);
	request.end();

注意的坑,返回json資料量大,會擷取分批返回,所以在回撥裡定義了一個string執行++, 這個一定要注意