Android 福士點評的接入

來源:互聯網
上載者:User

標籤:福士點評   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 福士點評的接入

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.