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
Android 大众点评的接入的更多相关文章
- Android 仿美团网,大众点评购买框悬浮效果之修改版
转帖请注明本文出自xiaanming的博客(http://blog.csdn.net/xiaanming/article/details/17761431),请尊重他人的辛勤劳动成果,谢谢! 我之前写 ...
- Android对ScrollView滚动监听,实现美团、大众点评的购买悬浮效果
转帖请注明本文出自xiaanming的博客(http://blog.csdn.net/xiaanming/article/details/17761431),请尊重他人的辛勤劳动成果,谢谢! 我之前写 ...
- Android 对ScrollView滚动监听,实现美团、大众点评的购买悬浮效果
转帖请注明本文出自xiaanming的博客(http://blog.csdn.net/xiaanming),请尊重他人的辛勤劳动成果,谢谢! 随着移动互联网的快速发展,它已经和我们的生活息息相关了,在 ...
- Android ScrollView滚动实现大众点评、网易云音乐评论悬停效果
今天听着网易云音乐,写着代码,真是爽翻了. http://blog.csdn.net/linshijun33/article/details/47910833 网易云音乐这个产品亮点应该在评论这一模块 ...
- MCI:移动持续集成在大众点评的实践
一.背景 美团是全球最大的互联网+生活服务平台,为3.2亿活跃用户和500多万的优质商户提供一个连接线上与线下的电子商务服务.秉承“帮大家吃得更好,生活更好”的使命,我们的业务覆盖了超过200个品类和 ...
- 【腾讯Bugly干货分享】美团大众点评 Hybrid 化建设
本文来自于腾讯Bugly公众号(weixinBugly),未经作者同意,请勿转载,原文地址:http://mp.weixin.qq.com/s/rNGD6SotKoO8frmxIU8-xw 本期 T ...
- 【原创】大众点评监控平台cat的性能分析
由于工作的原因,或者说我们之前内部监控设计和实现有点不满足现有的研发需求,所以调研了一下大众点评开源出来的cat这一套监控系统. 今天我们就来实验一把,cat的客户端埋点在我们的程序流程中上报数据到c ...
- WhatsApp值160亿美元,腾讯推大众点评微信支付!
腾讯前脚刚入股大众点评,FB后脚就将斥资160亿美元收购WhatsApp(40亿美元现金和120亿美元股票). 为什么WhatsApp值160亿美元?这是什么东东呢?WhatsApp这款服务可以帮助用 ...
- 大众点评CAT开源监控系统剖析
参考文档: 大众点评的实时监控系统分析(一) CAT_source_analyze 透过CAT,来看分布式实时监控系统的设计与实现 深度剖析开源分布式监控CAT [分布式监控CAT] Client端源 ...
随机推荐
- 【bzoj3526】[Poi2014]Card 线段树区间合并
题目描述 有n张卡片在桌上一字排开,每张卡片上有两个数,第i张卡片上,正面的数为a[i],反面的数为b[i].现在,有m个熊孩子来破坏你的卡片了!第i个熊孩子会交换c[i]和d[i]两个位置上的卡片. ...
- [CODEVS1916] 负载平衡问题(最小费用最大流)
传送门 输入所有 a[i],求出平均值 sum,每个 a[i] -= sum 那么如果 a[i] > 0,从 s 向 i 连一条容量为 a[i] 费用为 0 的有向边 如果 a[i] < ...
- Java众神之路(1)-语言介绍
Java语言介绍 1.Java的历史 我个人认为,学习一种技术,不止要关注技术本身,也应该去了解一下它的发展史,这一方面是对技术本身的尊重,另一方面也是希望能够通过该技术的发展历史推测出其未来可能的发 ...
- javaweb之Filter详解
一.概念:Filter也称之为过滤器,它是Servlet技术中比较激动人心的技术,WEB开发人员通过Filter技术,对web服务器管理的所有web资源:例如Jsp, Servlet, 静态图片文件或 ...
- 解决 Springboot中Interceptor拦截器中依赖注入失败
问题: 在Springboot拦截器Interceptor中使用@Resource依赖注入时,发现运行的时候被注解的对象居然是null,没被注入进去 原配置为: @Configurationpubli ...
- zoj 3791 An Easy Game dp
An Easy Game Time Limit: 2 Seconds Memory Limit: 65536 KB One day, Edward and Flandre play a ga ...
- Bzoj1452 Count
http://www.lydsy.com/JudgeOnline/problem.php?id=1452 题目全是图片,不复制了. 开100个二维树状数组,分别记录区间内各个颜色的出现位置…… 简单粗 ...
- 【CF1028B】Unnatural Conditions(构造)
题意:给定n与m,要求构造两个长度不超过2230的数字x,y使得x,y各自的数位和>=n,x+y的数位和<=n 思路: #include<cstdio> #include< ...
- 【NOIP2016练习】T3 质数 (分块)
题意:共有N盏灯,标号为1到N,有M个标有不同质数的开关,开关可以控制所有标号为其标号倍数的灯,按一次开关,所有其控制的灭着的灯都点亮,所有其控制的亮着的灯将熄灭.现在,宿管可以无限的按所有开关,所有 ...
- Django的日志中关闭elasticsearch模块的日志
今天用python的日志模块,为Django项目配置了日志,运行的时候发现日志在疯狂的涨,检查后发现竟然是elasticsearch的日志,但是我没有打这个日志啊,根据日志提供的文件位置,我在elas ...