nodejs http 调用java rest api传递复杂对象

一、方法封装

//post json数据
//返回json格式字符串
exports.postJson = function (url, data, fn) {
	var deferred;
	if (fn === undefined)
		deferred = Q.defer();

	data = data || {};
	var content = JSON.stringify(data);
	var options = {
		host: url.host,
		port: url.port,
		path: url.path,
		method: 'POST',
		headers: {
			'Content-Type': 'application/json',
			'Content-Length': Buffer.byteLength(content)
		}
	};
	var req = http.request(options, function (res) {
		var result = '';
		res.setEncoding('utf8');
		res.on('data', function (chunk) {
			result += chunk;
		});
		res.on('end', function () {
			result = result ? JSON.parse(result) : false;
			if (fn === undefined) {
				deferred.resolve(result);
			} else {
				fn(result);
			}
		});
	});
	req.on('error', function (e) {
		if (fn === undefined) {
			deferred.reject('Post Error:' + e.message);
		} else {
			console.log('Get Error:' + e.message);
		}
	});
	req.write(content);
	req.end();

	if (fn === undefined)
		return deferred.promise;
};



二、方法调用
exports.createSettleOrder = function (setleOrderParam, callback) {
	var url = appConfig.operation("createSettleOrder", undefined);
	console.log(url);
	utils.postJson(url, setleOrderParam, function (data) {
		callback(data);
	});
};



三、测试
var settleOrderParam = {
	productId: 1496
};

settleService.createSettleOrder(settleOrderParam, function (data) {
	console.log(data);
});


四、结论

不管什么语言调用java rest api都是可以直接传递复杂对象的,关键是content-type需要设置为application/json.

五、后传

那么rest client如何传递复杂对象呢

1、添加header


2、body传递json字符串

转载于:https://my.oschina.net/fengshuzi/blog/591574

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值