涉及接口 hotel.detail
demo语言: Java
开发环境:
前端 jQuery类库、layui、 bootstrap
后端 jdk1.7以上、 tomcat8以上、 springmvc + spring + mybatis
web页面展示酒店详情
请求url
列表页选择酒店后,将酒店列表页的日期、hotelid传入
var url = "/api/hotel/getDetail"; var req = { "arrivalDate": $("[name='daterangepicker_start']").val(), "departureDate": $("[name='daterangepicker_end']").val(), "hotelId": $("#inputHotelId").val() };
js请求后端
提交后端后返回酒店列表,并对列表结果进行处理
// 请求酒店详情 var result = ajaxCommonForJson(url, "POST", req); // 对返回结果进行展示 if (result != null) { // 轮播图处理展示 ... // 酒店简要信息处理展示 ... // 酒店经纬度处理展示 ... // 酒店设施信息处理 ... // 酒店服务信息处理 ... // 酒店交通信息处理 ... // 房型信息处理 // 产品处理 ... }
后端调用
后端通过http协议调用艺龙的hotel.detail接口
public class HotelDetailApi { private static double version = 1.50; private static EnumLocal locale = EnumLocal.zh_CN; private static boolean isHttps = false; ... ... /** * 通过http工具类调用艺龙接口,将前端参数拼接为URL */ public HotelDetailResult getHotelDetail(HotelDetailCondition condition, String userName, String appKey, String secretKey) { HotelDetailResult result = new HotelDetailResult(); String url = ""; String responseData = ""; try{ BaseRequest<HotelDetailCondition> req = new BaseRequest<HotelDetailCondition>(); req.Version = version; req.Local = locale; req.Request = condition; //请求参数转换为Json字符串 String str = JsonUtil.entity2Json(req); //产生签名 long epoch = System.currentTimeMillis()/1000; String sig = Tool.md5(epoch + Tool.md5(str + appKey) + secretKey); //产生请求链接 url = "http://" + serverHost + "/rest?format=json&method=hotel.detail"; url += "&user="+ userName +"×tamp="; url += epoch; url += "&signature="; url += sig; url += "&data=" + Tool.encodeUri(str); //发送请求 responseData = HttpUtil.Send("GET", url, "", "application/json"); //返回值处理 result = JsonUtil.jsonToObject(responseData, HotelDetailResult.class); } catch (Exception e) { log.info("[HotelDetailApi] 异常: " + e); log.info("发送的url: " + url); log.info("返回值: " + responseData); } return result; } ... ... }
效果展示
