REST调用

使用JAVASCRIPT调用REST服务:
var base = "http://192.168.0.114:9090/TerminalServices/ITerminalTradeInfo_IOCImpl/"
var geturl = "CardTradeService001/GetCardInfo/businessid/A1CC23/cardno/c0002";
var posturl = "CashTradeService001/postTradeDetailInfo/businessid/A1CCF1";
var postdata ='{"amountList":[{"moneyValue":5,"number":1,"type":1}],"changeList":[],"coinReserves":[{"coinValue":1,"coinNumber":0},{"coinValue":0.5,"coinNumber":0}],"date":"2015-08-18 12:02:00","materialList":[{"materialCode":"008","materialNum":1,"materialPrice":5}],"serialNumber":"ZFXC110228001002","stock":[{"materialCode":"008","materialLeft":9,"shelvesNum":6}],"terminalID":"ZFXC110228001","totalGiveChangePrice":0,"totalMaterialPrice":5,"totalPay":5}';
function testGET(url){
	var xmlhttp;
	if (window.XMLHttpRequest){// code for IE7, Firefox, Opera, etc.
		xmlhttp=new XMLHttpRequest();
	}else if (window.ActiveXObject){// code for IE6, IE5
		xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
	}
	xmlhttp.open ("GET",base+url,false);
    xmlhttp.send ();
	
    if (xmlhttp.Status = 200) {
	alert("xmlhttp.Status:"+xmlhttp.Status);
		var res = xmlhttp.responseText;
		alert(res);
	}
	return res;
}


function testPOST(url){
	var xmlhttp;
	if (window.XMLHttpRequest){// code for IE7+, Firefox, Chrome, Opera, Safari
		xmlhttp=new XMLHttpRequest();
	}else{// code for IE6, IE5
		xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
	}
	xmlhttp.open("POST",base+url,false);
//	xmlhttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8");
//	xmlhttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
    xmlhttp.setRequestHeader("Content-Length", postdata.length);
//	var jstr = postdata.toJSONString;
//	alert(jstr);
	xmlhttp.send (postdata);

	if (xmlhttp.Status = 200) {
		var res = xmlhttp.responseText;
//		alert("xmlhttp.Status:"+xmlhttp.Status);
//		alert(res);
	}
	return res;

}

使用Java调用REST服务
client.path("/CashTradeService001/postTradeDetailInfo/businessid/A1CCF1") 
			.accept(MediaType.APPLICATION_XML)
			.accept(MediaType.APPLICATION_JSON)
			.accept(MediaType.TEXT_PLAIN).type(MediaType.APPLICATION_XML)
			.type(MediaType.APPLICATION_JSON).type(MediaType.TEXT_PLAIN);
			serialNo = SystemTime.getSystemTime();
			// Post調用现金交易上传
			strHttpResult = client.post(CashTradeSerialize(), String.class);

注:服务端被调用的方法是通过POST/GET中的参数,通过Spring IOC注入找到的。

服务器端:

@Override
	@POST
	@Path("/CashTradeService001/postTradeDetailInfo/businessid/{input1}")
	@Consumes({ MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON,
			MediaType.TEXT_PLAIN })
	@Produces({ MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON })
	public String CashTradeService_postTradeDetailInfo(@PathParam(value = "input1") String businessId,String strJson) {
		// TODO Auto-generated method stub
		// 通过业务编码映射实体
		CashTradeService cashtradeservice = getProvider().getInstance(
				CashTradeService.class, businessId);
		return cashtradeservice.postTradeDetailInfo(strJson);
	}

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
REST(Representational State Transfer)是一种基于HTTP协议的软件架构风格,用于设计网络应用程序的通信方式。REST调用是指使用REST风格进行的客户端和服务器之间的通信。 在REST风格中,资源(Resource)是系统的核心概念,每个资源都可以通过一个唯一的URL进行标识。通过HTTP方法(GET、POST、PUT、DELETE等),客户端可以对资源进行不同的操作,实现对资源的创建、读取、更新和删除(CRUD)。 REST调用的特点包括: 1. 资源导向:REST调用强调以资源为中心,通过URL来标识和定位资源。 2. 无状态:每个请求都是独立的,服务器不会保存客户端的状态信息。客户端请求中应包含所有必要的信息,服务器仅根据请求进行处理。 3. 统一接口:REST调用使用统一的HTTP方法(GET、POST、PUT、DELETE)来表示对资源的不同操作。这使得API设计更加简洁和可理解。 4. 轻量级和可扩展:REST调用使用基于文本的协议(如JSON或XML)进行数据交换,使得数据传输更加轻量级和可扩展。 5. 可缓存性:REST调用支持缓存机制,可以提高性能和减少网络流量。 使用REST调用时,客户端通过发送HTTP请求(GET、POST、PUT、DELETE)到服务器的特定URL,服务器根据请求进行相应的处理,并返回HTTP响应,包含所请求资源的数据或操作结果。 总之,REST调用是一种通过HTTP协议进行资源操作的软件架构风格,它提供了一种简单、可扩展和可靠的方式来设计和实现网络应用程序的通信。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值