編輯:關於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然後調用接口paramMap) { String sign = sign(appKey, secret, paramMap); StringBuilder stringBuilder = new StringBuilder(); stringBuilder.append("appkey=").append(appKey).append("&sign=").append(sign); for (Entry 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 paramMap) { String sign = sign(appKey, secret, paramMap); StringBuilder stringBuilder = new StringBuilder(); stringBuilder.append("appkey=").append(appKey).append("&sign=").append(sign); for (Entry 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 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 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參數:(引用大眾點評)paramMap = new HashMap (); 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);
本文實例為大家分享了單行文本水平觸摸滑動效果,通過EditText實現TextView單行長文本水平滑動效果。下一篇再為大家介紹 多行文本折疊展開效果,自定義布局View
只是簡單的實現了效果,界面沒怎麼做優化,不過那都是次要的啦!!相信大家都迫不及待的想看效果圖了吧,其中主要的彩票視圖類和橡皮擦類都是通過代碼的方式構建視圖,布
在開發中UI布局是我們都會遇到的問題,隨著UI越來越多,布局的重復性、復雜度也會隨之增長。Android官方給了幾個優化的方法,但是網絡上的資料基本上都是對官方資料的翻
簡介線程是程序中一個單一的順序控制流程。進程內一個相對獨立的、可調度的執行單元,是系統獨立調度和分派CPU的基本單位指運行中的程序的調度單位。在單個程序中同時運行多個線程