涉及接口 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;
}
...
...
}效果展示

