使用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);
}