全国酒店查询
万维易源 官方文档
该接口所返回的所有图片链接将在12小时内自动销毁,若有需要这些图片的用户,请及时下载保存
基本说明:
接口地址:http://route.showapi.com/1653-1
返回格式:json
请求方式:get/post
请求示例:0
请求参数说明:
名称 类型 必填 说明
keyWords String 选填 查询关键字,酒店名称、位置、品牌等
page String 选填 页码
cityName String 选填 城市
inDate String 选填 入住时间,格式为:YYYY-MM-DD(默认2天后)
outDate String 选填 离开时间,格式为:YYYY-MM-DD(默认3天后)
sortCode String 选填 排序规则(默认1.推荐值排序) 1、推荐值降序 2、起价升序 3、起价降序 6、装修时间排序
returnFilter String 选填 是否返回聚合筛选条件,0:否,1:是。注意:returnFilter=1时搜索性能较差,尽量设置returnFilter=0
star String 选填 星级 TWO:二星级, THREE:三星级, FOUR:四星级, FIVE:五星级, BUDGET:经济型, CONFORT:舒适型, HIGHEND:高档型, LUXURY:豪华型【多个以逗号:‘,’分隔】
feature String 选填 品牌:通过搜索结果反向聚合
minPrice String 选填 房价最低价
maxPrice String 选填 房价最高价
facility String 选填 设施:通过搜索结果反向聚合
hotellabels String 选填 特色 1、温泉 3、休闲度假 4、购物便捷 5、客栈民宿 6、青年旅舍 7、精品酒店 8、亲子时刻
返回参数说明:
名称 类型 说明
ret_code String 0为成功、其余为失败
remark String 返回说明
filterInfo String 当returnFilter=1时才会存在,表示筛选条件
data String 酒店的数据
cityName String 城市名字
filterName String 筛选条件的说明
filterId String 筛选条件的标识
filterProsList String 筛选条件的详细信息列表
ubName String 详细信息名字
ubId String 详细信息标识
ubProsList String 详细信息下子信息列表
lat String 地图经度
lng String 地图纬度
id String 标识
ame String 酒店名称或者地点名称【根据参数位置定义】
hotelList String 酒店列表
count String 酒店数量
cityCode String 酒店所在城市code
hotelId String 酒店ID
tarName String 星级
addre String 酒店地址
locatio String 经纬度lng:百度地图经度 lat:百度地图纬度
facilitie String 设施 枚举如下:1.免费wifi2.餐厅3.停车场4.接机服务5.免费洗漱用品7.游泳池8.健身房9.会议室10.SPA
tartPrice String 起价
icture String 图片
JSON返回示例:
{
	"showapi_res_error": "",
	"showapi_res_code": 0,
	"showapi_res_body": {
		"cityName": "成都",
		"remark": "查询成功",
		"filterInfo": [{
				"filterName": "位置",
				"filterId": "area",
				"filterProsList": [{
					"subName": "businessDistricts",
					"subId": 1,
					"subProsList": [{
						"lat": 30.65,
						"name": "春熙路商业区",
						"lng": 104.075,
						"id": 46408
					}]
				}],
				"count": 28312,
				"cityCode": 2802
			},
			"ret_code": 0
		}
	}
服务级错误码参照
错误码 说明
-1 系统调用错误
-2 可调用次数或金额为0
-3 读取超时
-4 服务端返回数据解析错误
-5 后端服务器DNS解析错误
-6 服务不存在或未上线
-1000 系统维护
-1002 showapi_appid字段必传
-1003 showapi_sign字段必传
-1004 签名sign验证有误
-1005 showapi_timestamp无效
-1006 app无权限调用接口
-1007 没有订购套餐
-1008 服务商关闭对您的调用权限
-1009 调用频率受限
-1010 找不到您的应用
-1011 子授权app_child_id无效
-1012 子授权已过期或失效
-1013 子授权ip受限
完整教学代码示例
public static void main(String path[]) throws Exception {
URL u = new URL("http://route.showapi.com/1653-1?showapi_appid%3Dmyappid%26keyWords%3D%26page%3D0%26cityName%3D%E6%88%90%E9%83%BD%26inDate%3D%26outDate%3D%26sortCode%3D%26returnFilter%3D%26star%3D%26feature%3D%26minPrice%3D%26maxPrice%3D%26facility%3D%26hotellabels%3D%26showapi_sign%3Dmysecret");
InputStream in = u.openStream();
ByteArrayOutputStream out = new ByteArrayOutputStream();
try {
byte buf[] = new byte[1024];
int read = 0;
while ((read = in .read(buf)) > 0) {
out.write(buf, 0, read);
}
} finally {
if ( in != null) {
in .close();
}
}
byte b[] = out.toByteArray();
System.out.println(new String(b, "utf-8"));
}
<?php
/**
 * Created by PhpStorm.
 * User: FZS
 * Time: 2019/3/15 17:50
 */
//----------------------------------
// 易源 酒店搜素 调用类
//----------------------------------
class freeApi{
    private $apiId = false; //易源appid
    private $apiSecret = false; //易源secret
    private $apiUrl = 'http://route.showapi.com/1653-1';
    public function __construct($apiid,$secretkey){
        $this->apiId = $apiid;
        $this->apiSecret = $secretkey;
    }
    /**
     * url拼接
     * @return string
     */
    private function handleParam($paramArr,$showapi_secret){
        $paraStr = "";
        $signStr = "";
        ksort($paramArr);
        foreach ($paramArr as $key => $val) {
            if ($key != '' && $val != '') {
                $signStr .= $key.$val;
                $paraStr .= $key.'='.urlencode($val).'&';
            }
        }
        $signStr .= $showapi_secret;//排好序的参数加上secret,进行md5
        $sign = strtolower(md5($signStr));
        $paraStr .= 'showapi_sign='.$sign;//将md5后的值作为参数,便于服务器的效验
        return '?'.$paraStr;
    }
    /**
     * 将JSON内容转为数据,并返回
     * @param string $content [内容]
     * @return array
     */
    public function returnArray($content){
        return json_decode($content,true);
    }
    /**
     * 获取 酒店搜素 结果
     * @return array
     */
    public function getResult(){
        $paramArr = [
            'showapi_appid'=> $this->apiId,
            'keyWords'=> "",
            'page'=> "0",
            'cityName'=> "成都",
            'inDate'=> "",
            'outDate'=> "",
            'sortCode'=> "",
            'returnFilter'=> "",
            'star'=> "",
            'feature'=> "",
            'minPrice'=> "",
            'maxPrice'=> "",
            'facility'=> "",
            'hotellabels'=> ""
        ];
        return $this->returnArray($this->freeApiCurl($this->apiUrl.$this->handleParam($paramArr,$this->apiSecret)));
    }
    /**
     * 请求接口返回内容
     * @param  string $url [请求的URL地址]
     * @param  string $params [请求的参数]
     * @param  int $ipost [是否采用POST形式]
     * @return  string
     */
    public function freeApiCurl($url,$params=false,$ispost=0){
        $ch = curl_init();
        curl_setopt( $ch, CURLOPT_HTTP_VERSION , CURL_HTTP_VERSION_1_1 );
        curl_setopt( $ch, CURLOPT_HTTP_VERSION , CURL_HTTP_VERSION_1_1 );
        curl_setopt( $ch, CURLOPT_USERAGENT , 'free-api' );
        curl_setopt( $ch, CURLOPT_CONNECTTIMEOUT , 60 );
        curl_setopt( $ch, CURLOPT_TIMEOUT , 60);
        curl_setopt( $ch, CURLOPT_RETURNTRANSFER , true );
        if( $ispost )
        {
            curl_setopt( $ch , CURLOPT_POST , true );
            curl_setopt( $ch , CURLOPT_POSTFIELDS , $params );
            curl_setopt( $ch , CURLOPT_URL , $url );
        }
        else
        {
            if($params){
                curl_setopt( $ch , CURLOPT_URL , $url.'?'.$params );
            }else{
                curl_setopt( $ch , CURLOPT_URL , $url);
            }
        }
        $response = curl_exec( $ch );
        if ($response === FALSE) {
            return false;
        }
        curl_close( $ch );
        return $response;
    }
}
//推荐使用npm安装使用sdk: npm install --save showapi-sdk
'use strict';

var showapiSdk = require('showapi-sdk');

//设置你测试用的appId和secret,img
var appId='';
var secret='';
//开启debug
//showapiSdk.debug(true);
if(!(appId&&secret)){
  console.error('请先设置appId等测试参数,详见样例代码内注释!')
  return;
}
//全局默认设置
showapiSdk.setting({
  url:"http://route.showapi.com/1653-1",//你要调用的API对应接入点的地址,注意需要先订购了相关套餐才能调
  appId:appId,//你的应用id
  secret:secret,//你的密钥
  timeout:5000,//http超时设置
  options:{//默认请求参数,极少用到
    testParam:'test'
  }
})

var request=showapiSdk.request();
request.appendText('keyWords','');
request.appendText('page','0');
request.appendText('cityName','成都');
request.appendText('inDate','');
request.appendText('outDate','');
request.appendText('sortCode','');
request.appendText('returnFilter','');
request.appendText('star','');
request.appendText('feature','');
request.appendText('minPrice','');
request.appendText('maxPrice','');
request.appendText('facility','');
request.appendText('hotellabels','');
request.post(function(data){
  console.info(data)
})
package main

import (
"showSdk/normalRequest"
"fmt"
)
res := normalRequest.ShowapiRequest("http://route.showapi.com/1653-1",my_appId,"my_appSecret")
res.AddTextPara("keyWords","")
res.AddTextPara("page","0")
res.AddTextPara("cityName","成都")
res.AddTextPara("inDate","")
res.AddTextPara("outDate","")
res.AddTextPara("sortCode","")
res.AddTextPara("returnFilter","")
res.AddTextPara("star","")
res.AddTextPara("feature","")
res.AddTextPara("minPrice","")
res.AddTextPara("maxPrice","")
res.AddTextPara("facility","")
res.AddTextPara("hotellabels","")
//res.AddFilePara("img", "C:\\Users\\showa\\Desktop\\使用过的\\4.png")//文件上传时设置
fmt.Println(res.Post())
# python3.6.5
# 需要引入requests包 :运行终端->进入python/Scripts ->输入:pip install requests
from ShowapiRequest import ShowapiRequest

r = ShowapiRequest("http://route.showapi.com/1653-1","my_appId","my_appSecret" )
r.addBodyPara("keyWords", "")
r.addBodyPara("page", "0")
r.addBodyPara("cityName", "成都")
r.addBodyPara("inDate", "")
r.addBodyPara("outDate", "")
r.addBodyPara("sortCode", "")
r.addBodyPara("returnFilter", "")
r.addBodyPara("star", "")
r.addBodyPara("feature", "")
r.addBodyPara("minPrice", "")
r.addBodyPara("maxPrice", "")
r.addBodyPara("facility", "")
r.addBodyPara("hotellabels", "")
# r.addFilePara("img", r"C:\Users\showa\Desktop\使用过的\4.png") #文件上传时设置
res = r.post()
print(res.text) # 返回信息