Android 大众点评的接入

这里介绍的是大众点评的团购中的一个接口,就是所有团购信息,其他的接口的实现是大同小异的。

首先,登录大众点评的开发平台->大众点评 。然后获取到自己的应用的appkey和secret,这个是开发必备的。可以下载大众点评提供的demo->demo 。

获取所有的团购信息:

DZDPApiTool.java 大众点评提供的Api工具类(请求api -> requestApi这个方法)

public class DZDPApiTool {
	/**
     * 获取请求字符串
     *
     * @param appKey
     * @param secret
     * @param paramMap
     * @return
     */
    public static String getQueryString(String appKey, String secret, Map<String, String> paramMap)
    {
        String sign = sign(appKey, secret, paramMap);

        StringBuilder stringBuilder = new StringBuilder();
        stringBuilder.append("appkey=").append(appKey).append("&sign=").append(sign);
        for (Entry<String, String> entry : paramMap.entrySet())
        {
            stringBuilder.append('&').append(entry.getKey()).append('=').append(entry.getValue());
        }
        String queryString = stringBuilder.toString();
        return queryString;
    }

    /**
     * 获取请求字符串,参数值进行UTF-8处理
     *
     * @param appKey
     * @param secret
     * @param paramMap
     * @return
     */
    public static String getUrlEncodedQueryString(String appKey, String secret, Map<String, String> paramMap)
    {
        String sign = sign(appKey, secret, paramMap);

        StringBuilder stringBuilder = new StringBuilder();
        stringBuilder.append("appkey=").append(appKey).append("&sign=").append(sign);
        for (Entry<String, String> entry : paramMap.entrySet())
        {
            try
            {
                stringBuilder.append('&').append(entry.getKey()).append('=').append(URLEncoder.encode(entry.getValue(),
                                                                                                      "UTF-8"));
            }
            catch (UnsupportedEncodingException e)
            {
            }
        }
        String queryString = stringBuilder.toString();
        return queryString;
    }

    /**
     * 请求API
     *
     * @param apiUrl
     * @param appKey
     * @param secret
     * @param paramMap
     * @return
     */
    public static String requestApi(String apiUrl, String appKey, String secret, Map<String, String> paramMap)
    {
        String queryString = getQueryString(appKey, secret, paramMap);

        StringBuffer response = new StringBuffer();
        HttpClientParams httpConnectionParams = new HttpClientParams();
        httpConnectionParams.setConnectionManagerTimeout(1000);
        HttpClient client = new HttpClient(httpConnectionParams);
        HttpMethod method = new GetMethod(apiUrl);

        try
        {
            if (queryString != null && !queryString.isEmpty())
            {
                // Encode query string with UTF-8
                String encodeQuery = URIUtil.encodeQuery(queryString, "UTF-8");
                method.setQueryString(encodeQuery);
            }

            client.executeMethod(method);
            BufferedReader reader = new BufferedReader(new InputStreamReader(method.getResponseBodyAsStream(), "UTF-8"));
            String line = null;
            while ((line = reader.readLine()) != null)
            {
                response.append(line).append(System.getProperty("line.separator"));
            }
            reader.close();
        }
        catch (URIException e)
        {
        }
        catch (IOException e)
        {
        }
        finally
        {
            method.releaseConnection();
        }
        return response.toString();

    }

    /**
     * 签名
     *
     * @param appKey
     * @param secret
     * @param paramMap
     * @return
     */
    public static String sign(String appKey, String secret, Map<String, String> paramMap)
    {
        // 参数名排序
        String[] keyArray = paramMap.keySet().toArray(new String[0]);
        Arrays.sort(keyArray);

        // 拼接参数
        StringBuilder stringBuilder = new StringBuilder();
        stringBuilder.append(appKey);
        for (String key : keyArray)
        {
            stringBuilder.append(key).append(paramMap.get(key));
        }

        stringBuilder.append(secret);
        String codes = stringBuilder.toString();

        // SHA-1签名
        // For Android
        String sign = new String(Hex.encodeHex(DigestUtils.sha(codes))).toUpperCase();

        return sign;
    }
}

然后调用接口

Map<String, String> paramMap = new HashMap<String, String>();
					paramMap.put("city", city);
					paramMap.put("limit", 1);
					paramMap.put("page", offset + "");
					paramMap.put("region", region);

DZDPApiTool.requestApi(http://api.dianping.com/v1/deal/find_deals, appkey, sign, paramMap);

参数:(引用大众点评)

  • 必选参数

    名称 类型 说明
    appkey string App Key,应用的唯一标识
    sign string 请求签名,生成方式见《API请求签名生成文档》
    city string 包含团购信息的城市名称,可选范围见相关API返回结果
  • 可选参数

    名称 类型 说明
    destination_city string 指定目的地城市名称,适用于“酒店”、“旅游”等分类,可选范围见相关API返回结果
    latitude float 纬度坐标,须与经度坐标同时传入
    longitude float 经度坐标,须与纬度坐标同时传入
    radius int 搜索半径,单位为米,最小值1,最大值5000,如不传入默认为1000
    region string 包含团购信息的城市区域名,可选范围见相关API返回结果(不含返回结果中包括的城市名称信息)
    category string 包含团购信息的分类名,支持多个category合并查询,多个category用逗号分割。可选范围见相关API返回结果
    is_local int 根据是否是本地单来筛选返回的团购,1:是,0:不是
    keyword string 关键词,搜索范围包括商户名、商品名、地址等
    sort int 结果排序,1:默认,2:价格低优先,3:价格高优先,4:购买人数多优先,5:最新发布优先,6:即将结束优先,7:离经纬度坐标距离近优先
    limit int 每页返回的团单结果条目数上限,最小值1,最大值40,如不传入默认为20
    page int 页码,如不传入默认为1,即第一页
    format string 返回数据格式,可选值为json或xml,如不传入,默认值为json
时间: 2024-10-08 16:18:06

Android 大众点评的接入的相关文章

Android 仿美团网,大众点评购买框悬浮效果之修改版

我之前写了一篇关于美团网,大众点评的购买框效果的文章Android对ScrollView滚动监听,实现美团.大众点评的购买悬浮效果,我自己感觉效果并不是很好,如果快速滑动界面,显示悬浮框的时候会出现一卡的现象,有些朋友说有时候会出现两个布局的情况,特别是对ScrollView滚动的Y值得监听,我还使用了Handler来获取,还有朋友给我介绍了Scrolling Tricks这个东西,我下载试了下,确实美团网,大众点评的购买框用的是这种效果,但是Scrolling Tricks只能在API11以上

Android仿大众点评引导页(ViewPage)+主页面(Fragment)的实现

大家好,今天主要是实现仿大众点评引导页和主页面以及城市定位的实现,主要使用ViewPager+Fragment+SharedPreferences,实现了第一次打开程序出现引导页,再次打开跳过引导页,这也是一般应用常用的应用基本架构方式.下面首先来看最终实现效果如下图: 1.布局文件说明 1)欢迎页布局文件welcome.xml 2) 引导页布局文件welcome_guide.xml 3)首页布局文件main_home.xml 4)团购布局文件main_tuan.xml 5) 发现布局文件mai

Android ScrollView滚动实现大众点评、网易云音乐评论悬停效果

今天听着网易云音乐,写着代码,真是爽翻了. http://blog.csdn.net/linshijun33/article/details/47910833 网易云音乐这个产品亮点应该在评论这一模块,于是我就去看了下评论区,发现一个它是用的一个ScrollView,从上到下可分为三部分.最上面是音乐封面.接着是精彩评论,然后是最新评论.手指在上面滚动一段距离.精彩评论就在布局顶部悬停,再接着滚动,最新评论就替代精彩评论在布局顶部悬停,十分有趣的一个特点. 然后又去翻了一下大众点评APP,发现也

Android对ScrollView滚动监听,实现美团、大众点评的购买悬浮效果

我之前写了一篇关于美团网,大众点评的购买框效果的文章Android对ScrollView滚动监听,实现美团.大众点评的购买悬浮效果,我自己感觉效果并不是很好,如果快速滑动界面,显示悬浮框的时候会出现一卡的现象,有些朋友说有时候会出现两个布局的情况,特别是对ScrollView滚动的Y值得监听,我还使用了Handler来获取,还有朋友给我介绍了Scrolling Tricks这个东西,我下载试了下,确实美团网,大众点评的购买框用的是这种效果,但是Scrolling Tricks只能在API11以上

Android 仿美团网,大众点评购买框悬浮效果

如上图美团网,大众点评购买框悬浮效果,用户在向上滑动界面时,购买按钮始终在界面上,用户体验很好,很人性化.下面具体看看代码是怎么实现的: 主界面布局文件main.xml <?xml version="1.0" encoding="UTF-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+

android 粗暴简单仿美团/大众点评搜索方式,详细标注

转载请注明出处王亟亟的大牛之路 美团和大众点评的搜索和筛选栏,不能说好看(审美flag),但是满足了我们的搜索还筛选的需求,所以今天就实现了下这样的一个小Demo 项目结构:运行效果就是下图了,就不再截图了 初始化的样子: 具体实现就是起初3个LinearLayout,点击之后出现一个ListView然后会根据对这个LisvView的点击可能会再出现下一级别的子菜单. 废话不多说,直接上代码 MainActivity public class MainActivity extends Activ

springmvc+dubbo+mybatis 接入大众点评 CAT 监控平台

CAT(Central Application Tracking)是基于Java开发的实时应用监控平台,包括实时应用监控,业务监控.关于CAT的具体介绍可移步到CAT官网进行查阅. CAT平台的搭建可移步到「搭建大众点评CAT监控平台」. 1. 开发环境 Windows Java 8 Maven 3.5 MySQL 5.7 CAT 2.0.0 Dubbo 2.6 Spring 4.3 2. 客户端配置 客户端应用程序接入CAT需要在系统的特定路径中部署client.xml配置文件.Windows

【Android重量级】高仿大众点评源码

高仿大众点评源码   下载地址:http://url.cn/Nzj3Lc    源码简介 声明:本源码只用于个人研究使用,不可用于商业用途,由于本源码引起的纠纷皆与作者无关. 本套源码是本人在校的时候做的一个练手的列子,高仿大众点评,项目源码不算是太完善,还请专业人士指导并完善他. 源码部分没有完成,服务器部分也不是太完善,只是实现了查询方面的东西. 由于现在没有时间去优化,所以把源码发出来给新手们参考学习,代码不规范的地方还请扣扣告诉我, 我想多向大家学习,充实自己,希望大家多多提供意见让我更

【Android重量级源码】高仿大众点评源码

高仿大众点评源码   下载地址:http://url.cn/Nzj3Lc   源码简介声明:本源码只用于个人研究使用,不可用于商业用途,由于本源码引起的纠纷皆与作者无关. 本套源码是本人在校的时候做的一个练手的列子,高仿大众点评,项目源码不算是太完善,还请专业人士指导并完善他. 源码部分没有完成,服务器部分也不是太完善,只是实现了查询方面的东西. 由于现在没有时间去优化,所以把源码发出来给新手们参考学习,代码不规范的地方还请扣扣告诉我, 我想多向大家学习,充实自己,希望大家多多提供意见让我更快的