package com.letv.watchball.http.api; import java.util.ArrayList; import android.util.Log; import com.letv.watchball.bean.AdJoiningBean; import com.letv.watchball.parser.AdJoiningParser; import com.letv.watchball.utils.LetvUtil; import org.apache.http.message.BasicNameValuePair; import android.os.Bundle; import com.letv.http.bean.LetvBaseBean; import com.letv.http.bean.LetvDataHull; import com.letv.http.impl.LetvHttpBaseParameter; import com.letv.http.impl.LetvHttpParameter; import com.letv.http.impl.LetvHttpStaticParameter; import com.letv.http.impl.LetvHttpTool; import com.letv.http.parse.LetvBaseParser; import com.letv.http.parse.LetvMainParser; import com.letv.watchball.db.PreferencesManager; import com.letv.watchball.utils.MD5; /** * 所有接口API * */ public class LetvHttpApi { private static String PCODE; private static String VERSION; private static String DEVICEID; /************************************************* 正式地址 ********************************************************/ /** * 动态请求BaseUrl * */ // private static final String DYNAMIC_APP_BASE_URL = // "http://dynamic.app.m.letv.com/android/dynamic.php"; private static final String DYNAMIC_APP_BASE_URL = "http://sports.app.m.letv.com/dynamic.php"; /** * 静态请求head * */ // private static final String STATIC_APP_BASE_HEAD = // "http://static.app.m.letv.com/android"; private static final String STATIC_APP_BASE_HEAD = "http://sports.app.m.letv.com"; /** * 静态请求end * */ private static final String STATIC_APP_BASE_END = ".mindex.html"; /************************************************* 测试地址 ********************************************************/ /** * 动态请求BaseUrl http://test.sports.app.m.letv.com/ * */ public static final String DYNAMIC_TEST_BASE_URL = "http://test.ports.app.m.letv.com/dynamic.php"; /** * 静态请求head * */ public static final String STATIC_TEST_BASE_HEAD = "http://test.sports.app.m.letv.com"; /** * 静态请求end * */ public static final String STATIC_TEST_BASE_END = ".mindex.html"; /****************************************************************************************************************/ /** * 海外IP地址 * */ private static final String IP_BASE_URL = "http://hot.vrs.letv.com/ip"; /************************************************* 看球 正式地址 ********************************************************/ // public static final String BASE_URL = // "http://220.181.153.236:8080/sports/api/"; /** * 看球1.0正式接口 */ public static final String WB_BASE_API10_URL = "http://sports.app.m.letv.com/sports/api/"; /** * 动态请求BaseUrl * */ public static final String WB_DYNAMIC_BASE_URL = "http://sports.app.m.letv.com/dynamic.php"; /** * 静态请求head * */ // private static final String WB_STATIC_BASE_HEAD = // "http://static.sports.m.letv.com"; private static final String WB_STATIC_BASE_HEAD = "http://sports.app.m.letv.com"; /** * 静态请求end * */ private static final String WB_STATIC_APP_BASE_END = ".mindex.html"; /************************************************* 看球 测试地址 ********************************************************/ /** * 看球1.0正式接口 */ public static final String WB_BASE_API10_URL_TEST = "http://test.sports.app.m.letv.com/sports/api/"; /** * 动态请求BaseUrl * */ public static final String WB_DYNAMIC_BASE_URL_TEST = "http://test.sports.app.m.letv.com/dynamic.php"; /** * 静态请求head * */ private static final String WB_STATIC_BASE_HEAD_TEST = "http://test.sports.app.m.letv.com"; /** * 静态请求end * */ private static final String WB_STATIC_APP_BASE_END_TEST = ".mindex.html"; /** * 请求开机广告图url * */ private static final String WB_STATIC_PUSH_AD_IMAGE = "http://www.letv.com/cmsdata/block/883.json"; /** * 世界杯开关 */ private static final String WORLD_CUP = "http://sports.app.m.letv.com/sports/api/apistatus?version=%1s&pcode=%2s"; private static final String WORLD_CUP_TEST = "http://test.sports.app.m.letv.com/sports/api/apistatus?version=%1s&pcode=%2s"; /** * 得到动态地址 **/ private static String getDynamicUrl() { if (PreferencesManager.getInstance().isTestApi()) { return DYNAMIC_TEST_BASE_URL; } else { return DYNAMIC_APP_BASE_URL; } } /** * 得到静态头 * */ private static String getStaticHead() { if (PreferencesManager.getInstance().isTestApi()) { return STATIC_TEST_BASE_HEAD; } else { return STATIC_APP_BASE_HEAD; } } private static String getWorldCupUrl() { if (PreferencesManager.getInstance().isTestApi()) { return WORLD_CUP_TEST; } else { return WORLD_CUP; } } /** * 得到静态尾 * */ private static String getStaticEnd() { if (PreferencesManager.getInstance().isTestApi()) { return STATIC_TEST_BASE_END; } else { return STATIC_APP_BASE_END; } } /** * 看球 得到动态地址 * */ private static String getWbDynamicWBUrl() { if (PreferencesManager.getInstance().isTestApi()) { return WB_DYNAMIC_BASE_URL_TEST; } else { return WB_DYNAMIC_BASE_URL; } } /** * 看球 得到静态头 * */ private static String getWbStaticHead() { if (PreferencesManager.getInstance().isTestApi()) { return WB_STATIC_BASE_HEAD_TEST; } else { return WB_STATIC_BASE_HEAD; } } /** * 看球 得到静态尾 * */ private static String getWbStaticEnd() { if (PreferencesManager.getInstance().isTestApi()) { return WB_STATIC_APP_BASE_END_TEST; } else { return WB_STATIC_APP_BASE_END; } } /** * 看球1.0 base url * */ private static String getWbAPI10() { if (PreferencesManager.getInstance().isTestApi()) { return WB_BASE_API10_URL_TEST; } else { return WB_BASE_API10_URL; } } public static LetvDataHull<AdJoiningBean> requestAdJoining(int i, String ahl, String vl, String atl, AdJoiningParser adJoiningParser) { return null; } public static interface REQUEST_URL { public String allliveinfos = getWbAPI10() + "all_live"; public String liveinfos = getWbAPI10() + "liveinfos"; public String match_list = getWbAPI10() + "match_list"; public String original_video = getWbAPI10() + "original_video"; public String video_types = getWbAPI10() + "video_types"; public String subscribe_match = getWbAPI10() + "subscribe_match"; public String unsubscribe_match = getWbAPI10() + "unsubscribe_match"; public String match_schedule = getWbAPI10() + "match_schedule"; public String table = getWbAPI10() + "table"; public String subscribe_list = getWbAPI10() + "subscribe_list"; public String getFocusTeam = getWbAPI10() + "getFocusTeam"; public String focus = getWbAPI10() + "focus"; public String unfocus = getWbAPI10() + "unfocus"; public String my_team_match = getWbAPI10() + "my_team_match"; public String my_all_matches = getWbAPI10() + "my_all_matches"; public String vrsVideos_match = getWbAPI10() + "/android/mod/minfo/ctl/videolist/act/index"; public String match_info = getWbAPI10() + "match_info"; public String my_teams = getWbAPI10() + "my_teams"; } /** * 公共参数 * */ private static interface PUBLIC_PARAMETERS { public String MOD_KEY = "mod"; public String CTL_KEY = "ctl"; public String ACT_KEY = "act"; public String MARKID_KEY = "markid"; public String PCODE_KEY = "pcode"; public String VERSION_KEY = "version"; public String DEVICE_ID = "devId"; public String CT_KEY = "ct"; public String ID_KEY = "id"; } /** * 请求PTV视频详情参数 * */ private static interface VIDEO_FILE_PARAMETERS { public String MOD_VALUE = "mz"; public String CTL_VALUE = "videofile"; public String ACT_VALUE = "index"; public String MMSID_KEY = "mmsid"; public String PLAYID_KEY = "playid"; public String TSS_KEY = "tss"; public String KEY_KEY = "key"; public String TM_KEY = "tm"; } /** * 视频直播列表参数 * */ private static interface LIVE_INFOS { public String page_index = "page_index"; } private static interface MATCH_LIST { public String original_colunm = "original_colunm"; } private static interface ORIGINAL_VIDEO { public String columnId = "columnId"; public String offset = "offset"; public String max = "max"; } private static interface SUBSCRIBE_MATCH { public String matchId = "matchId"; public String token = "token"; } private static interface MATCH_SCHEDULE { public String match_type = "match_type"; public String round_key = "round_key"; public String group = "group"; } private static interface TABLE { public String match_type = "match_type"; public String level = "level"; public String group = "group"; } private static interface FOCUS { public String teamId = "teamId"; public String level = "level"; } private static interface MATCH_INFO { public String id = "id"; } private static interface SUBMITPLAYTRACE_PARAMETERS { public String MOD_VALUE = "mz"; public String CTL_VALUE = "cloud"; public String ACT_VALUE = "add"; public String CID_KEY = "cid"; public String PID_KEY = "pid"; public String VID_KEY = "vid"; public String NVID_KEY = "nvid"; public String UID_KEY = "uid"; public String VTYPE_KEY = "vtype"; public String FROM_KEY = "from"; public String HTIME_KEY = "htime"; public String SSO_TK_KEY = "sso_tk"; } private static interface SUBMITPLAYTRACES_PARAMETERS { public String MOD_VALUE = "mz"; public String CTL_VALUE = "cloud"; public String ACT_VALUE = "import"; public String UID_KEY = "uid"; public String DATA_KEY = "data"; public String SSO_TK_KEY = "sso_tk"; } private static interface DELETEPLAYTRACES_PARAMETERS { public String MOD_VALUE = "mz"; public String CTL_VALUE = "cloud"; public String ACT_VALUE = "del"; public String PID_KEY = "pid"; public String VID_KEY = "vid"; public String UID_KEY = "uid"; public String IDSTR_KEY = "idstr"; public String FLUSH_KEY = "flush"; public String BACKDATA_KEY = "backdata"; public String SSO_TK_KEY = "sso_tk"; } private static interface GETPLAYTRACES_PARAMETERS { public String MOD_VALUE = "mz"; public String CTL_VALUE = "cloud"; public String ACT_VALUE = "get"; public String UID_KEY = "uid"; public String PAGE_KEY = "page"; public String PAGESIZE_KEY = "pagesize"; public String SSO_TK_KEY = "sso_tk"; } private static interface GETPLAYTRACE_PARAMETERS { public String MOD_VALUE = "mz"; public String CTL_VALUE = "cloud"; public String ACT_VALUE = "getPoint"; public String UID_KEY = "uid"; public String VID_KEY = "vid"; public String SSO_TK_KEY = "sso_tk"; } private static interface SEARCHPLAYTRACES_PARAMETERS { public String MOD_VALUE = "mz"; public String CTL_VALUE = "cloud"; public String ACT_VALUE = "search"; public String PIDS_KEY = "pids"; public String VIDS_KEY = "vids"; public String SSO_TK_KEY = "sso_tk"; } /** * 请求专辑视频列表参数 * */ private static interface VIDEOS_LIST_PARAMETERS { public String MOD_VALUE = "mz"; public String CTL_VALUE = "videolist"; public String ACT_VALUE = "index"; public String ID_KEY = "id";// 专辑id public String VID_KEY = "vid";// 视频id // 若使用此参数,则只返回当前vid所在页数的数据,已经所在页码和索引位置,不使用请不要传此参数 public String B_KEY = "pn";// 页数--默认为1 public String S_KEY = "ps";// 每页数量--默认为30 public String O_KEY = "or";// 排序方式--1:按着集数升序; 1:按着集数降序.默认为:-1 public String M_KEY = "m";// 合并输出--1:合并; // 0:不合并.默认为:1合并videoinfo,yugaopininfo,huaxuinfo,zixuninfo,otherinfo // 这些视频列表,统一在videoinfo中输出 } /** * 请求视频详情参数 * */ private static interface VIDEO_INFO_PARAMETERS { public String MOD_VALUE = "mz"; public String CTL_VALUE = "video"; public String ACT_VALUE = "detail"; public String ID_KEY = "id"; } /** * 直播防盗链参数 * */ private static interface ANTI_LEECH_PARAMETERS { public String FORMAT = "format"; public String EXPECT = "expect"; } /** * 点播防盗链参数 * */ private static interface TIMESTAMP_PARAMETERS { public String MOD_VALUE = "mz"; public String CTL_VALUE = "timestamp"; public String ACT_VALUE = "timestamp"; } /** * 直播防盗链参数 * */ private static interface EXPIRE_TIMESTAMP_PARAMETERS { public String MOD_VALUE = "mz"; public String CTL_VALUE = "timeexpirestamp"; public String ACT_VALUE = "timeExpireStamp"; } /** * 请求分享地址数据参数 * http://static.app.m.letv.com/android/mod/minfo/ctl/linkshare/act * /index/pcode/{$pcode}/version/{$version}.mindex.html * */ private static interface SHARE_PARAMETERS { public String MOD_VALUE = "mz"; public String CTL_VALUE = "linkshare"; public String ACT_VALUE = "index"; } /** * 请求用户信息参数 * */ private static interface GETUSERBYTK_PARAMETERS { public String MOD_VALUE = "passport"; public String CTL_VALUE = "index"; public String ACT_VALUE = "getUserByTk"; public String TK_KEY = "tk"; } /** * 请求个性化推荐数据参数 * http://static.app.m.letv.com/android/mod/minfo/ctl/message/act * /index/pcode/{$pcode}/version/{$version}.mindex.html * */ private static interface DIALOG_PARAMETERS { public String MOD_VALUE = "mz"; public String CTL_VALUE = "message"; public String ACT_VALUE = "index"; public String MARKID = "markid"; } /** * 请求用户信息参数 * */ private static interface GETUSERBYID_PARAMETERS { public String MOD_VALUE = "passport"; public String CTL_VALUE = "index"; public String ACT_VALUE = "getUserByID"; public String UID_KEY = "uid"; } /** * 用户登录参数 * */ private static interface CLIENTLOGIN_PARAMETERS { public String MOD_VALUE = "passport"; public String CTL_VALUE = "index"; public String ACT_VALUE = "clientLogin"; public String LOGINNAME_KEY = "loginname"; public String PASSWORD_KEY = "password"; public String REGISTSERVICE_KEY = "registService"; public String PROFILE_KEY = "profile"; public String PLAT_KEY = "plat"; } /** * 用户注册参数 * */ private static interface ADDUSER_PARAMETERS { public String MOD_VALUE = "passport"; public String CTL_VALUE = "index"; public String ACT_VALUE = "addUser"; public String EMAIL_KEY = "email"; public String MOBILE_KEY = "mobile"; public String PASSWORD_KEY = "password"; public String NICKNAME_KEY = "nickname"; public String GENDER_KEY = "gender"; public String REGISTSERVICE_KEY = "registService"; public String VCODE_KEY = "vcode"; } /** * 邮箱激活邮件下发 * */ private static interface SENDACTIVEEMAIL_PARAMETERS { public String MOD_VALUE = "passport"; public String CTL_VALUE = "index"; public String ACT_VALUE = "sendActiveEmail"; public String EMAIL_KEY = "email"; } /** * 检查手机号是否存在 * */ private static interface CHECKMOBILEEXISTS_PARAMETERS { public String MOD_VALUE = "passport"; public String CTL_VALUE = "index"; public String ACT_VALUE = "checkMobileExists"; public String MOBILE_KEY = "mobile"; } /** * 检查邮箱是否存在 * */ private static interface CHECKEMAILEXISTS_PARAMETERS { public String MOD_VALUE = "passport"; public String CTL_VALUE = "index"; public String ACT_VALUE = "checkEmailExists"; public String EMAIL_KEY = "email"; } /** * 邮箱找回密码邮件下发 * */ private static interface SENDBACKPWDEMAIL_PARAMETERS { public String MOD_VALUE = "passport"; public String CTL_VALUE = "index"; public String ACT_VALUE = "sendBackPwdEmail"; public String EMAIL_KEY = "email"; } /** * 修改密码 * */ private static interface MODIFYPWD_PARAMETERS { public String MOD_VALUE = "passport"; public String CTL_VALUE = "index"; public String ACT_VALUE = "modifyPwd"; public String TK_KEY = "tk"; public String OLDPWD_KEY = "oldpwd"; public String NEWPWD_KEY = "newpwd"; } /** * 手机短信下行接口 * */ private static interface S_SENDMOBILE_PARAMETERS { public String MOD_VALUE = "passport"; public String CTL_VALUE = "index"; public String ACT_VALUE = "s_sendMobile"; public String MOBILE_KEY = "mobile"; } /** * @author haitian 通过视频id获取视频或专辑详情 */ private static interface GETALBUMBYID_PARAMETERS { public String MOD_VALUE = "mob"; public String CTL_VALUE = "getalbumbyid"; public String ACT_VALUE = "detail"; public String ID_KEY = "id"; } /** * 获取直播券参数 */ private static interface USETICKET_PARAMETERS { public String MOD_VALUE = "api20"; public String CTL_VALUE = "liveuseticket"; public String ACT_VALUE = "index"; public String TICKET_TYPE = "tickettype"; public String USER_ID = "userid"; public String CHANNEL = "channel"; public String CATEGORY = "category"; public String SEASON = "season"; public String TURN = "turn"; public String GAME = "game"; public String APISIGN = "apisign"; } /** * 获取直播券参数 */ private static interface TICKETCOUNT_PARAMETERS { public String MOD_VALUE = "api20"; public String CTL_VALUE = "livegetticket"; public String ACT_VALUE = "index"; public String USER_ID = "userid"; public String CHANNEL = "channel"; public String CATEGORY = "category"; public String SEASON = "season"; public String TURN = "turn"; public String GAME = "game"; public String APISIGN = "apisign"; } /** * 鉴权参数 */ private static interface DYNAMICCHECK_PARAMETERS { public String MOD_VALUE = "api20"; public String CTL_VALUE = "livevalidate"; public String ACT_VALUE = "index"; public String PID = "pid"; public String LIVE_ID = "liveid"; public String FROM = "from"; public String STREAM_ID = "streamId"; public String SPLAT_ID = "splatId"; public String USER_ID = "userId"; public String LSSTART = "lsstart"; public String API_SIGN = "apisign"; } /** * 初始化化pcode 和 version * * @param pcode * 渠道号 * @param version * app版本 * */ public static void initialize(String pcode, String version, String deviceId) { PCODE = pcode; VERSION = version; Log.e("gongmeng", "version:"+VERSION); DEVICEID = deviceId; } public static void setTest(boolean isTest) { PreferencesManager.getInstance().setTestApi(isTest); } /** * 根据参数,调起请求 * */ private static <T extends LetvBaseBean, D> LetvDataHull<T> request( LetvHttpBaseParameter<T, D, ?> httpParameter) { LetvHttpTool<T> handler = new LetvHttpTool<T>(); return handler.requsetData(httpParameter); } // /** // * 根据参数,调起请求 // * */ // private static <T extends LetvBaseBean, D> LetvDataHull<T> // request(LetvHttpParameter<T, D> httpParameter) { // LetvHttpTool<T> handler = new LetvHttpTool<T>(); // // return handler.requsetData(httpParameter); // } /** * 2.3.1.视频所有直播列表接口 * * */ public static <T extends LetvBaseBean, D> LetvDataHull<T> requestAllLiveinfos( LetvBaseParser<T, D> parser) { Bundle params = new Bundle(); params.putString(PUBLIC_PARAMETERS.PCODE_KEY, PCODE); params.putString(PUBLIC_PARAMETERS.VERSION_KEY, VERSION); LetvHttpParameter<T, D> httpParameter = new LetvHttpParameter<T, D>( REQUEST_URL.allliveinfos, params, LetvHttpParameter.Type.GET, parser, 0); return request(httpParameter); } /** * 视频直播列表接口 * * */ public static <T extends LetvBaseBean, D> LetvDataHull<T> requestLiveinfos( String page_index, LetvBaseParser<T, D> parser) { Bundle params = new Bundle(); params.putString(PUBLIC_PARAMETERS.PCODE_KEY, PCODE); params.putString(PUBLIC_PARAMETERS.VERSION_KEY, VERSION); params.putString(LIVE_INFOS.page_index, page_index); LetvHttpParameter<T, D> httpParameter = new LetvHttpParameter<T, D>( REQUEST_URL.liveinfos, params, LetvHttpParameter.Type.GET, parser, 0); return request(httpParameter); } /** * 2.3.3.取得赛事列表接口 * * @param <T> * @param <D> * @param respOriginalProgram * 是否包含原创栏目(默认true) * @param parser * @return */ public static <T extends LetvBaseBean, D> LetvDataHull<T> requestMatchlist( boolean respOriginalProgram, LetvBaseParser<T, D> parser) { Bundle params = new Bundle(); params.putString(PUBLIC_PARAMETERS.PCODE_KEY, PCODE); params.putString(PUBLIC_PARAMETERS.VERSION_KEY, VERSION); params.putString(MATCH_LIST.original_colunm, (respOriginalProgram ? 1 : 0) + ""); LetvHttpParameter<T, D> httpParameter = new LetvHttpParameter<T, D>( REQUEST_URL.match_list, params, LetvHttpParameter.Type.GET, parser, 0); return request(httpParameter); } /** * 2.3.4. 取得原创节目列表接口 * * @param <T> * @param <D> * @param columnId * 原创栏目id * @param offset * 开始位置下标值,从0开始 * @param max * 每页最大值 * @param parser * @return */ public static <T extends LetvBaseBean, D> LetvDataHull<T> requestOriginalVideo( String columnId, int offset, int max, LetvBaseParser<T, D> parser) { Bundle params = new Bundle(); params.putString(PUBLIC_PARAMETERS.PCODE_KEY, PCODE); params.putString(PUBLIC_PARAMETERS.VERSION_KEY, VERSION); params.putString(ORIGINAL_VIDEO.columnId, columnId); params.putString(ORIGINAL_VIDEO.offset, String.valueOf(offset)); params.putString(ORIGINAL_VIDEO.max, String.valueOf(max)); LetvHttpParameter<T, D> httpParameter = new LetvHttpParameter<T, D>( REQUEST_URL.original_video, params, LetvHttpParameter.Type.GET, parser, 0); return request(httpParameter); } @Deprecated /** * 2.3.6. 视频新闻刷选类型数据接口 * * @param <T> * @param <D> * @param parser * @return */ public static <T extends LetvBaseBean, D> LetvDataHull<T> requestVideoTypes( LetvBaseParser<T, D> parser) { Bundle params = new Bundle(); params.putString(PUBLIC_PARAMETERS.PCODE_KEY, PCODE); params.putString(PUBLIC_PARAMETERS.VERSION_KEY, VERSION); LetvHttpParameter<T, D> httpParameter = new LetvHttpParameter<T, D>( REQUEST_URL.video_types, params, LetvHttpParameter.Type.GET, parser, 0); return request(httpParameter); } /** * 2.3.7. 直播比赛订阅数据接口 * * @param <T> * @param <D> * @param matchId * 比赛id * @param deviceId * 设备id * @param parser * @return */ public static <T extends LetvBaseBean, D> LetvDataHull<T> requestSubscribeMatch( String matchId, LetvBaseParser<T, D> parser) { Bundle params = new Bundle(); params.putString(PUBLIC_PARAMETERS.PCODE_KEY, PCODE); params.putString(PUBLIC_PARAMETERS.VERSION_KEY, VERSION); params.putString(PUBLIC_PARAMETERS.DEVICE_ID, DEVICEID); params.putString(SUBSCRIBE_MATCH.matchId, matchId); // params.putString(SUBSCRIBE_MATCH.token, ""); LetvHttpParameter<T, D> httpParameter = new LetvHttpParameter<T, D>( REQUEST_URL.subscribe_match, params, LetvHttpParameter.Type.GET, parser, 0); return request(httpParameter); } /** * 2.3.8. 取消直播比赛订阅数据接口 * * @param <T> * @param <D> * @param matchId * 比赛id * @param deviceId * 设备id * @param parser * @return */ public static <T extends LetvBaseBean, D> LetvDataHull<T> requestUnsubscribeMatch( String matchId, LetvBaseParser<T, D> parser) { Bundle params = new Bundle(); params.putString(PUBLIC_PARAMETERS.PCODE_KEY, PCODE); params.putString(PUBLIC_PARAMETERS.VERSION_KEY, VERSION); params.putString(PUBLIC_PARAMETERS.DEVICE_ID, DEVICEID); params.putString(SUBSCRIBE_MATCH.matchId, matchId); LetvHttpParameter<T, D> httpParameter = new LetvHttpParameter<T, D>( REQUEST_URL.unsubscribe_match, params, LetvHttpParameter.Type.GET, parser, 0); return request(httpParameter); } /** * 2.3.10. 赛程列表接口 * * @param <T> * @param <D> * @param match_type * 赛事type * @param round_key * 赛事轮次 * @param parser * @return */ public static <T extends LetvBaseBean, D> LetvDataHull<T> requestMatchSchedule( String match_type, String round_key, LetvBaseParser<T, D> parser) { Bundle params = new Bundle(); params.putString(PUBLIC_PARAMETERS.PCODE_KEY, PCODE); params.putString(PUBLIC_PARAMETERS.VERSION_KEY, VERSION); params.putString(MATCH_SCHEDULE.match_type, match_type); params.putString(MATCH_SCHEDULE.round_key, round_key); params.putString(MATCH_SCHEDULE.group, "1"); LetvHttpParameter<T, D> httpParameter = new LetvHttpParameter<T, D>( REQUEST_URL.match_schedule, params, LetvHttpParameter.Type.GET, parser, 0); return request(httpParameter); } /** * 2.3.11. 积分榜接口 * * @param <T> * @param <D> * @param match_type * 赛事type * @param level * 赛事级别,1:足球,2:篮球 * @param parser * @return */ public static <T extends LetvBaseBean, D> LetvDataHull<T> requestTable( String match_type, String level, LetvBaseParser<T, D> parser) { Bundle params = new Bundle(); params.putString(PUBLIC_PARAMETERS.PCODE_KEY, PCODE); params.putString(PUBLIC_PARAMETERS.VERSION_KEY, VERSION); params.putString(TABLE.match_type, match_type + ""); params.putString(TABLE.level, level + ""); params.putString(TABLE.group, "1"); LetvHttpParameter<T, D> httpParameter = new LetvHttpParameter<T, D>( REQUEST_URL.table, params, LetvHttpParameter.Type.GET, parser, 0); return request(httpParameter); } /** * 2.3.14. 所有可关注球队列表接口 * * @param <T> * @param <D> * @param parser * @return */ public static <T extends LetvBaseBean, D> LetvDataHull<T> requestGetFocusTeam( LetvBaseParser<T, D> parser) { Bundle params = new Bundle(); params.putString(PUBLIC_PARAMETERS.PCODE_KEY, PCODE); params.putString(PUBLIC_PARAMETERS.VERSION_KEY, VERSION); params.putString(PUBLIC_PARAMETERS.DEVICE_ID, DEVICEID); LetvHttpParameter<T, D> httpParameter = new LetvHttpParameter<T, D>( REQUEST_URL.getFocusTeam, params, LetvHttpParameter.Type.GET, parser, 0); return request(httpParameter); } /** * 2.3.15. 关注球队接口 * * @param <T> * @param <D> * @param teamId * 球队id * @param level * 赛事类型,1:足球;2:篮球 * @param parser * @return */ public static <T extends LetvBaseBean, D> LetvDataHull<T> requestFocus( String teamId, String level, LetvBaseParser<T, D> parser) { Bundle params = new Bundle(); params.putString(PUBLIC_PARAMETERS.PCODE_KEY, PCODE); params.putString(PUBLIC_PARAMETERS.VERSION_KEY, VERSION); params.putString(PUBLIC_PARAMETERS.DEVICE_ID, DEVICEID); params.putString(FOCUS.teamId, teamId); params.putString(FOCUS.level, level); LetvHttpParameter<T, D> httpParameter = new LetvHttpParameter<T, D>( REQUEST_URL.focus, params, LetvHttpParameter.Type.GET, parser, 0); return request(httpParameter); } /** * 2.3.16. 取消关注球队接口 * * @param <T> * @param <D> * @param teamId * 球队id * @param level * 赛事类型,1:足球;2:篮球 * @param parser * @return */ public static <T extends LetvBaseBean, D> LetvDataHull<T> requestUnfocus( String teamId, String level, LetvBaseParser<T, D> parser) { Bundle params = new Bundle(); params.putString(PUBLIC_PARAMETERS.PCODE_KEY, PCODE); params.putString(PUBLIC_PARAMETERS.VERSION_KEY, VERSION); params.putString(PUBLIC_PARAMETERS.DEVICE_ID, DEVICEID); params.putString(FOCUS.teamId, teamId); params.putString(FOCUS.level, level); LetvHttpParameter<T, D> httpParameter = new LetvHttpParameter<T, D>( REQUEST_URL.unfocus, params, LetvHttpParameter.Type.GET, parser, 0); return request(httpParameter); } /** * 2.3.17. 我的球队比赛信息列表接口 * * @param <T> * @param <D> * @param teamId * 球队id * @param level * 赛事类型,1:足球;2:篮球 * @param parser * @return */ public static <T extends LetvBaseBean, D> LetvDataHull<T> requestMyTeamMatch( String teamId, String level, LetvBaseParser<T, D> parser) { Bundle params = new Bundle(); params.putString(PUBLIC_PARAMETERS.PCODE_KEY, PCODE); params.putString(PUBLIC_PARAMETERS.VERSION_KEY, VERSION); params.putString(PUBLIC_PARAMETERS.DEVICE_ID, DEVICEID); params.putString(FOCUS.teamId, teamId); params.putString(FOCUS.level, level); LetvHttpParameter<T, D> httpParameter = new LetvHttpParameter<T, D>( REQUEST_URL.my_team_match, params, LetvHttpParameter.Type.GET, parser, 0); return request(httpParameter); } @Deprecated /** *2.3.18.我的球队全部比赛信息列表接口 * * @param <T> * @param <D> * @param teamId * 球队id * @param level * 赛事类型,1:足球;2:篮球 * @param parser * @return */ public static <T extends LetvBaseBean, D> LetvDataHull<T> requestAllMyTeamMatchs( LetvBaseParser<T, D> parser) { Bundle params = new Bundle(); params.putString(PUBLIC_PARAMETERS.PCODE_KEY, PCODE); params.putString(PUBLIC_PARAMETERS.VERSION_KEY, VERSION); params.putString(PUBLIC_PARAMETERS.DEVICE_ID, DEVICEID); LetvHttpParameter<T, D> httpParameter = new LetvHttpParameter<T, D>( REQUEST_URL.my_all_matches, params, LetvHttpParameter.Type.GET, parser, 0); return request(httpParameter); } /** * 2.3.19.我的球队列表接口 * * @param <T> * @param <D> * @param parser * @return */ public static <T extends LetvBaseBean, D> LetvDataHull<T> requestMyTeams( LetvBaseParser<T, D> parser) { Bundle params = new Bundle(); params.putString(PUBLIC_PARAMETERS.PCODE_KEY, PCODE); params.putString(PUBLIC_PARAMETERS.VERSION_KEY, VERSION); params.putString(PUBLIC_PARAMETERS.DEVICE_ID, DEVICEID); LetvHttpParameter<T, D> httpParameter = new LetvHttpParameter<T, D>( REQUEST_URL.my_teams, params, LetvHttpParameter.Type.GET, parser, 0); return request(httpParameter); } /** * 2.3.20. Android比分信息轮询接口 * * @return */ public static <T extends LetvBaseBean, D> LetvDataHull<T> requestMatchInfo( String id, LetvBaseParser<T, D> parser) { Bundle params = new Bundle(); params.putString(PUBLIC_PARAMETERS.PCODE_KEY, PCODE); params.putString(PUBLIC_PARAMETERS.VERSION_KEY, VERSION); params.putString(MATCH_INFO.id, id); LetvHttpParameter<T, D> httpParameter = new LetvHttpParameter<T, D>( REQUEST_URL.match_info, params, LetvHttpParameter.Type.GET, parser, 0); Log.d("smy", "requestMatchInfo"); return request(httpParameter); } /** * 请求验证海外IP接口 * * @param updataId * 刷新UI或数据的ID * @param parser * 解析器 * @return XDataHull<T> 壳数据 1.大陆 0.海外 * */ public static <T extends LetvBaseBean, D> LetvDataHull<T> requestIP( int updataId, LetvMainParser<T, D> parser) { String baseUrl = IP_BASE_URL; LetvHttpParameter<T, D> httpParameter = new LetvHttpParameter<T, D>( baseUrl, null, LetvHttpParameter.Type.GET, parser, updataId); return request(httpParameter); } /** * 提交单条播放记录(动态) * * @param updataId * 刷新id * @param parser * @return */ public static <T extends LetvBaseBean, D> LetvDataHull<T> submitPlayTrace( int updataId, String cid, String pid, String vid, String nvid, String uid, String vtype, String from, String htime, String sso_tk, LetvMainParser<T, D> parser) { String baseUrl = getDynamicUrl(); Bundle params = new Bundle(); params.putString(PUBLIC_PARAMETERS.MOD_KEY, SUBMITPLAYTRACE_PARAMETERS.MOD_VALUE); params.putString(PUBLIC_PARAMETERS.CTL_KEY, SUBMITPLAYTRACE_PARAMETERS.CTL_VALUE); params.putString(PUBLIC_PARAMETERS.ACT_KEY, SUBMITPLAYTRACE_PARAMETERS.ACT_VALUE); params.putString(SUBMITPLAYTRACE_PARAMETERS.CID_KEY, cid); params.putString(SUBMITPLAYTRACE_PARAMETERS.PID_KEY, pid); params.putString(SUBMITPLAYTRACE_PARAMETERS.VID_KEY, vid); params.putString(SUBMITPLAYTRACE_PARAMETERS.NVID_KEY, nvid); params.putString(SUBMITPLAYTRACE_PARAMETERS.UID_KEY, uid); params.putString(SUBMITPLAYTRACE_PARAMETERS.VTYPE_KEY, vtype); params.putString(SUBMITPLAYTRACE_PARAMETERS.FROM_KEY, from); params.putString(SUBMITPLAYTRACE_PARAMETERS.HTIME_KEY, htime); params.putString(SUBMITPLAYTRACE_PARAMETERS.SSO_TK_KEY, sso_tk); params.putString(PUBLIC_PARAMETERS.PCODE_KEY, PCODE); params.putString(PUBLIC_PARAMETERS.VERSION_KEY, VERSION); LetvHttpParameter<T, D> httpParameter = new LetvHttpParameter<T, D>( baseUrl, params, LetvHttpParameter.Type.GET, parser, updataId); return request(httpParameter); } /** * 提交多条播放记录(动态) * * @param updataId * 刷新id * @param parser * @return */ public static <T extends LetvBaseBean, D> LetvDataHull<T> submitPlayTraces( int updataId, String uid, String data, String sso_tk, LetvMainParser<T, D> parser) { String baseUrl = getDynamicUrl() + "?" + PUBLIC_PARAMETERS.MOD_KEY + "=" + SUBMITPLAYTRACES_PARAMETERS.MOD_VALUE + "&" + PUBLIC_PARAMETERS.CTL_KEY + "=" + SUBMITPLAYTRACES_PARAMETERS.CTL_VALUE + "&" + PUBLIC_PARAMETERS.ACT_KEY + "=" + SUBMITPLAYTRACES_PARAMETERS.ACT_VALUE + "&" + PUBLIC_PARAMETERS.PCODE_KEY + "=" + PCODE + "&" + PUBLIC_PARAMETERS.VERSION_KEY + "=" + VERSION; Bundle params = new Bundle(); params.putString(SUBMITPLAYTRACES_PARAMETERS.UID_KEY, uid); params.putString(SUBMITPLAYTRACES_PARAMETERS.DATA_KEY, data); params.putString(SUBMITPLAYTRACES_PARAMETERS.SSO_TK_KEY, sso_tk); params.putString(PUBLIC_PARAMETERS.PCODE_KEY, PCODE); params.putString(PUBLIC_PARAMETERS.VERSION_KEY, VERSION); LetvHttpParameter<T, D> httpParameter = new LetvHttpParameter<T, D>( baseUrl, params, LetvHttpParameter.Type.POST, parser, updataId); return request(httpParameter); } /** * 删除播放记录(可以多条)(动态) * * @param updataId * 刷新id * @param parser * @return */ public static <T extends LetvBaseBean, D> LetvDataHull<T> deletePlayTraces( int updataId, String pid, String vid, String uid, String idstr, String flush, String backdata, String sso_tk, LetvMainParser<T, D> parser) { String baseUrl = getDynamicUrl(); Bundle params = new Bundle(); params.putString(PUBLIC_PARAMETERS.MOD_KEY, DELETEPLAYTRACES_PARAMETERS.MOD_VALUE); params.putString(PUBLIC_PARAMETERS.CTL_KEY, DELETEPLAYTRACES_PARAMETERS.CTL_VALUE); params.putString(PUBLIC_PARAMETERS.ACT_KEY, DELETEPLAYTRACES_PARAMETERS.ACT_VALUE); params.putString(DELETEPLAYTRACES_PARAMETERS.PID_KEY, pid); params.putString(DELETEPLAYTRACES_PARAMETERS.VID_KEY, vid); params.putString(DELETEPLAYTRACES_PARAMETERS.UID_KEY, uid); params.putString(DELETEPLAYTRACES_PARAMETERS.IDSTR_KEY, idstr); params.putString(DELETEPLAYTRACES_PARAMETERS.FLUSH_KEY, flush); params.putString(DELETEPLAYTRACES_PARAMETERS.BACKDATA_KEY, backdata); params.putString(DELETEPLAYTRACES_PARAMETERS.SSO_TK_KEY, sso_tk); params.putString(PUBLIC_PARAMETERS.PCODE_KEY, PCODE); params.putString(PUBLIC_PARAMETERS.VERSION_KEY, VERSION); LetvHttpParameter<T, D> httpParameter = new LetvHttpParameter<T, D>( baseUrl, params, LetvHttpParameter.Type.GET, parser, updataId); return request(httpParameter); } /** * 获取多条播放记录(动态) * * @param updataId * 刷新id * @param parser * @return */ public static <T extends LetvBaseBean, D> LetvDataHull<T> getPlayTraces( int updataId, String uid, String page, String pagesize, String sso_tk, LetvMainParser<T, D> parser) { String baseUrl = getDynamicUrl(); Bundle params = new Bundle(); params.putString(PUBLIC_PARAMETERS.MOD_KEY, GETPLAYTRACES_PARAMETERS.MOD_VALUE); params.putString(PUBLIC_PARAMETERS.CTL_KEY, GETPLAYTRACES_PARAMETERS.CTL_VALUE); params.putString(PUBLIC_PARAMETERS.ACT_KEY, GETPLAYTRACES_PARAMETERS.ACT_VALUE); params.putString(GETPLAYTRACES_PARAMETERS.UID_KEY, uid); params.putString(GETPLAYTRACES_PARAMETERS.PAGE_KEY, page); params.putString(GETPLAYTRACES_PARAMETERS.PAGESIZE_KEY, pagesize); params.putString(GETPLAYTRACES_PARAMETERS.SSO_TK_KEY, sso_tk); params.putString(PUBLIC_PARAMETERS.PCODE_KEY, PCODE); params.putString(PUBLIC_PARAMETERS.VERSION_KEY, VERSION); LetvHttpParameter<T, D> httpParameter = new LetvHttpParameter<T, D>( baseUrl, params, LetvHttpParameter.Type.GET, parser, updataId); return request(httpParameter); } /** * 获取一条播放记录(动态) * * @param updataId * 刷新id * @param parser * @return */ public static <T extends LetvBaseBean, D> LetvDataHull<T> getPlayTrace( int updataId, String uid, String vid, String sso_tk, LetvMainParser<T, D> parser) { String baseUrl = getDynamicUrl(); Bundle params = new Bundle(); params.putString(PUBLIC_PARAMETERS.MOD_KEY, GETPLAYTRACE_PARAMETERS.MOD_VALUE); params.putString(PUBLIC_PARAMETERS.CTL_KEY, GETPLAYTRACE_PARAMETERS.CTL_VALUE); params.putString(PUBLIC_PARAMETERS.ACT_KEY, GETPLAYTRACE_PARAMETERS.ACT_VALUE); params.putString(GETPLAYTRACE_PARAMETERS.UID_KEY, uid); params.putString(GETPLAYTRACE_PARAMETERS.VID_KEY, vid); params.putString(GETPLAYTRACE_PARAMETERS.SSO_TK_KEY, sso_tk); params.putString(PUBLIC_PARAMETERS.PCODE_KEY, PCODE); params.putString(PUBLIC_PARAMETERS.VERSION_KEY, VERSION); LetvHttpParameter<T, D> httpParameter = new LetvHttpParameter<T, D>( baseUrl, params, LetvHttpParameter.Type.GET, parser, updataId); return request(httpParameter); } /** * 搜索播放记录(动态) * * @param updataId * 刷新id * @param parser * @return */ public static <T extends LetvBaseBean, D> LetvDataHull<T> searchPlayTraces( int updataId, String pids, String vids, String sso_tk, LetvMainParser<T, D> parser) { String baseUrl = getDynamicUrl(); Bundle params = new Bundle(); params.putString(PUBLIC_PARAMETERS.MOD_KEY, SEARCHPLAYTRACES_PARAMETERS.MOD_VALUE); params.putString(PUBLIC_PARAMETERS.CTL_KEY, SEARCHPLAYTRACES_PARAMETERS.CTL_VALUE); params.putString(PUBLIC_PARAMETERS.ACT_KEY, SEARCHPLAYTRACES_PARAMETERS.ACT_VALUE); params.putString(SEARCHPLAYTRACES_PARAMETERS.PIDS_KEY, pids); params.putString(SEARCHPLAYTRACES_PARAMETERS.VIDS_KEY, vids); params.putString(SEARCHPLAYTRACES_PARAMETERS.SSO_TK_KEY, sso_tk); params.putString(PUBLIC_PARAMETERS.PCODE_KEY, PCODE); params.putString(PUBLIC_PARAMETERS.VERSION_KEY, VERSION); LetvHttpParameter<T, D> httpParameter = new LetvHttpParameter<T, D>( baseUrl, params, LetvHttpParameter.Type.GET, parser, updataId); return request(httpParameter); } /** * 请求专辑视频详情(静态) * * @param updataId * 刷新UI或数据的ID * @param id * 专辑ID * @param vtype * 视频格式 mp4,flv,m3u8 * @param parser * 解析器 * @return XDataHull<T> 壳数据 * */ public static <T extends LetvBaseBean, D> LetvDataHull<T> requestAlbumVideoInfo( int updataId, String id, String type, String markId, LetvMainParser<T, D> parser) { String head = getStaticHead(); String end = getStaticEnd(); ArrayList<BasicNameValuePair> params = new ArrayList<BasicNameValuePair>(); params.add(new BasicNameValuePair(PUBLIC_PARAMETERS.MOD_KEY, VIDEO_INFO_PARAMETERS.MOD_VALUE)); params.add(new BasicNameValuePair(PUBLIC_PARAMETERS.CTL_KEY, type)); params.add(new BasicNameValuePair(PUBLIC_PARAMETERS.ACT_KEY, VIDEO_INFO_PARAMETERS.ACT_VALUE)); params.add(new BasicNameValuePair(VIDEO_INFO_PARAMETERS.ID_KEY, id)); params.add(new BasicNameValuePair(PUBLIC_PARAMETERS.PCODE_KEY, PCODE)); params.add(new BasicNameValuePair(PUBLIC_PARAMETERS.VERSION_KEY, VERSION)); params.add(new BasicNameValuePair(PUBLIC_PARAMETERS.MARKID_KEY, markId)); LetvHttpStaticParameter<T, D> httpParameter = new LetvHttpStaticParameter<T, D>( head, end, params, parser, updataId); return request(httpParameter); } /** * 专辑视频列表 * * @param updataId * @param id * @param vid * @param page * @param count * @param merge * @param parser * @param filter * @return */ public static <T extends LetvBaseBean, D> LetvDataHull<T> requestAlbumVideoList( int updataId, String id, String vid, String page, String count, String o, String merge, String markId, LetvMainParser<T, D> parser) { String head = getStaticHead();// STATIC_TEST_BASE_HEAD2; String end = getStaticEnd();// STATIC_TEST_BASE_END2; ArrayList<BasicNameValuePair> params = new ArrayList<BasicNameValuePair>(); params.add(new BasicNameValuePair(PUBLIC_PARAMETERS.MOD_KEY, VIDEOS_LIST_PARAMETERS.MOD_VALUE)); params.add(new BasicNameValuePair(PUBLIC_PARAMETERS.CTL_KEY, VIDEOS_LIST_PARAMETERS.CTL_VALUE)); params.add(new BasicNameValuePair(PUBLIC_PARAMETERS.ACT_KEY, VIDEOS_LIST_PARAMETERS.ACT_VALUE)); params.add(new BasicNameValuePair(VIDEOS_LIST_PARAMETERS.ID_KEY, id)); params.add(new BasicNameValuePair(VIDEOS_LIST_PARAMETERS.VID_KEY, vid)); params.add(new BasicNameValuePair(VIDEOS_LIST_PARAMETERS.B_KEY, page)); params.add(new BasicNameValuePair(VIDEOS_LIST_PARAMETERS.S_KEY, count)); params.add(new BasicNameValuePair(VIDEOS_LIST_PARAMETERS.M_KEY, merge)); params.add(new BasicNameValuePair(PUBLIC_PARAMETERS.PCODE_KEY, PCODE)); params.add(new BasicNameValuePair(PUBLIC_PARAMETERS.VERSION_KEY, VERSION)); params.add(new BasicNameValuePair(PUBLIC_PARAMETERS.MARKID_KEY, markId)); LetvHttpStaticParameter<T, D> httpParameter = new LetvHttpStaticParameter<T, D>( head, end, params, parser, updataId); return request(httpParameter); } /** * 请求视频文件信息(动态) * * @param updataId * 刷新UI或数据的ID * @param mmsid * 媒体资源id,支持多个,用半角逗号隔开 * @param playid * 0:点播 1:直播 2:下载 * @param tss * no MP4 , ios ts流 * @param parser * 解析器 * @return XDataHull<T> 壳数据 * */ public static <T extends LetvBaseBean, D> LetvDataHull<T> requestVideoFile( int updataId, String mmsid, String playid, String tss, String tm, String key, LetvMainParser<T, D> parser) { String baseUrl = getDynamicUrl(); Bundle params = new Bundle(); params.putString(PUBLIC_PARAMETERS.MOD_KEY, VIDEO_FILE_PARAMETERS.MOD_VALUE); params.putString(PUBLIC_PARAMETERS.CTL_KEY, VIDEO_FILE_PARAMETERS.CTL_VALUE); params.putString(PUBLIC_PARAMETERS.ACT_KEY, VIDEO_FILE_PARAMETERS.ACT_VALUE); params.putString(VIDEO_FILE_PARAMETERS.MMSID_KEY, mmsid); params.putString(VIDEO_FILE_PARAMETERS.PLAYID_KEY, playid); params.putString(VIDEO_FILE_PARAMETERS.TSS_KEY, tss); params.putString(VIDEO_FILE_PARAMETERS.KEY_KEY, key); params.putString(VIDEO_FILE_PARAMETERS.TM_KEY, tm); params.putString(PUBLIC_PARAMETERS.PCODE_KEY, PCODE); params.putString(PUBLIC_PARAMETERS.VERSION_KEY, VERSION); LetvHttpParameter<T, D> httpParameter = new LetvHttpParameter<T, D>( baseUrl, params, LetvHttpParameter.Type.GET, parser, updataId); return request(httpParameter); } /** * 得到时间戳 * */ public static <T extends LetvBaseBean, D> LetvDataHull<T> getTimestamp( int updataId, LetvMainParser<T, D> parser) { String baseUrl = getDynamicUrl(); Bundle params = new Bundle(); params.putString(PUBLIC_PARAMETERS.MOD_KEY, TIMESTAMP_PARAMETERS.MOD_VALUE); params.putString(PUBLIC_PARAMETERS.CTL_KEY, TIMESTAMP_PARAMETERS.CTL_VALUE); params.putString(PUBLIC_PARAMETERS.ACT_KEY, TIMESTAMP_PARAMETERS.ACT_VALUE); params.putString(PUBLIC_PARAMETERS.PCODE_KEY, PCODE); params.putString(PUBLIC_PARAMETERS.VERSION_KEY, VERSION); LetvHttpParameter<T, D> httpParameter = new LetvHttpParameter<T, D>( baseUrl, params, LetvHttpParameter.Type.GET, parser, updataId); return request(httpParameter); } /** * 使用直播券 */ public static <T extends LetvBaseBean, D> LetvDataHull<T> useTicket( int updataId, String userId, String channel, String category, String season, String turn, String game, String type, String apisign, LetvMainParser<T, D> parser) { String baseUrl = getDynamicUrl(); Bundle params = new Bundle(); params.putString(PUBLIC_PARAMETERS.MOD_KEY, USETICKET_PARAMETERS.MOD_VALUE); params.putString(PUBLIC_PARAMETERS.CTL_KEY, USETICKET_PARAMETERS.CTL_VALUE); params.putString(PUBLIC_PARAMETERS.ACT_KEY, USETICKET_PARAMETERS.ACT_VALUE); params.putString(USETICKET_PARAMETERS.TICKET_TYPE, type); params.putString(USETICKET_PARAMETERS.USER_ID, userId); params.putString(USETICKET_PARAMETERS.CHANNEL, channel); params.putString(USETICKET_PARAMETERS.CATEGORY, category); params.putString(USETICKET_PARAMETERS.SEASON, season); params.putString(USETICKET_PARAMETERS.TURN, turn); params.putString(USETICKET_PARAMETERS.GAME, game); params.putString(USETICKET_PARAMETERS.APISIGN, apisign); params.putString(PUBLIC_PARAMETERS.PCODE_KEY, PCODE); params.putString(PUBLIC_PARAMETERS.VERSION_KEY, VERSION); LetvHttpParameter<T, D> httpParameter = new LetvHttpParameter<T, D>( baseUrl, params, LetvHttpParameter.Type.GET, parser, updataId); return request(httpParameter); } /** * 直播券数量 */ public static <T extends LetvBaseBean, D> LetvDataHull<T> getTicketCount( int updataId, String userId, String channel, String category, String season, String turn, String game, String apisign, LetvMainParser<T, D> parser) { String baseUrl = getDynamicUrl(); Bundle params = new Bundle(); params.putString(PUBLIC_PARAMETERS.MOD_KEY, TICKETCOUNT_PARAMETERS.MOD_VALUE); params.putString(PUBLIC_PARAMETERS.CTL_KEY, TICKETCOUNT_PARAMETERS.CTL_VALUE); params.putString(PUBLIC_PARAMETERS.ACT_KEY, TICKETCOUNT_PARAMETERS.ACT_VALUE); params.putString(TICKETCOUNT_PARAMETERS.USER_ID, userId); params.putString(TICKETCOUNT_PARAMETERS.CHANNEL, channel); params.putString(TICKETCOUNT_PARAMETERS.CATEGORY, category); params.putString(TICKETCOUNT_PARAMETERS.SEASON, season); params.putString(TICKETCOUNT_PARAMETERS.TURN, turn); params.putString(TICKETCOUNT_PARAMETERS.GAME, game); params.putString(TICKETCOUNT_PARAMETERS.APISIGN, apisign); params.putString(PUBLIC_PARAMETERS.PCODE_KEY, PCODE); params.putString(PUBLIC_PARAMETERS.VERSION_KEY, VERSION); LetvHttpParameter<T, D> httpParameter = new LetvHttpParameter<T, D>( baseUrl, params, LetvHttpParameter.Type.GET, parser, updataId); return request(httpParameter); } /** * 鉴权 */ public static <T extends LetvBaseBean, D> LetvDataHull<T> dynamiccheck( int updataId, String pid, String liveid, String from, String streamId, String splatId, String userId, String lsstart, String apisign, LetvMainParser<T, D> parser) { String baseUrl = getDynamicUrl(); Bundle params = new Bundle(); params.putString(PUBLIC_PARAMETERS.MOD_KEY, DYNAMICCHECK_PARAMETERS.MOD_VALUE); params.putString(PUBLIC_PARAMETERS.CTL_KEY, DYNAMICCHECK_PARAMETERS.CTL_VALUE); params.putString(PUBLIC_PARAMETERS.ACT_KEY, DYNAMICCHECK_PARAMETERS.ACT_VALUE); params.putString(DYNAMICCHECK_PARAMETERS.PID, pid); params.putString(DYNAMICCHECK_PARAMETERS.LIVE_ID, liveid); params.putString(DYNAMICCHECK_PARAMETERS.FROM, from); params.putString(DYNAMICCHECK_PARAMETERS.STREAM_ID, streamId); params.putString(DYNAMICCHECK_PARAMETERS.SPLAT_ID, splatId); params.putString(DYNAMICCHECK_PARAMETERS.USER_ID, userId); params.putString(DYNAMICCHECK_PARAMETERS.LSSTART, lsstart); params.putString(DYNAMICCHECK_PARAMETERS.API_SIGN, apisign); params.putString(PUBLIC_PARAMETERS.PCODE_KEY, PCODE); params.putString(PUBLIC_PARAMETERS.VERSION_KEY, VERSION); LetvHttpParameter<T, D> httpParameter = new LetvHttpParameter<T, D>( baseUrl, params, LetvHttpParameter.Type.GET, parser, updataId); return request(httpParameter); } /** * 得到过期时间戳 * */ public static <T extends LetvBaseBean, D> LetvDataHull<T> getExpireTimestamp( int updataId, LetvMainParser<T, D> parser) { String baseUrl = getDynamicUrl(); Bundle params = new Bundle(); params.putString(PUBLIC_PARAMETERS.MOD_KEY, EXPIRE_TIMESTAMP_PARAMETERS.MOD_VALUE); params.putString(PUBLIC_PARAMETERS.CTL_KEY, EXPIRE_TIMESTAMP_PARAMETERS.CTL_VALUE); params.putString(PUBLIC_PARAMETERS.ACT_KEY, EXPIRE_TIMESTAMP_PARAMETERS.ACT_VALUE); params.putString(PUBLIC_PARAMETERS.PCODE_KEY, PCODE); params.putString(PUBLIC_PARAMETERS.VERSION_KEY, VERSION); LetvHttpParameter<T, D> httpParameter = new LetvHttpParameter<T, D>( baseUrl, params, LetvHttpParameter.Type.GET, parser, updataId); return request(httpParameter); } /** * 请求真实的播放地址,防盗链 * * @param updataId * @param url * @param parser * @return */ public static <T extends LetvBaseBean, D> LetvDataHull<T> requestRealLink( int updataId, String url, LetvMainParser<T, D> parser) { /** * 为兼容老版本,修改如下: format=1(1:json;2:xml) (json格式) expect=3(一次返回3个地址) */ StringBuilder builder = new StringBuilder(url); builder.append("&"); builder.append(ANTI_LEECH_PARAMETERS.EXPECT); builder.append("="); builder.append("3"); builder.append("&"); builder.append(ANTI_LEECH_PARAMETERS.FORMAT); builder.append("="); builder.append("1"); LetvHttpParameter<T, D> httpParameter = new LetvHttpParameter<T, D>( builder.toString(), null, LetvHttpParameter.Type.GET, parser, updataId); return request(httpParameter); } /** * 请求分享链接规则接口(动态,专有接口) * * @param updataId * 刷新UI或数据的ID * @param parser * 解析器 * @return * */ public static <T extends LetvBaseBean, D> LetvDataHull<T> requestShareLink( int updataId, LetvMainParser<T, D> parser) { // http://static.app.m.letv.com/android/mod/minfo/ctl/linkshare/act/index/pcode/{$pcode}/version/{$version}.mindex.html String head = getStaticHead(); String end = getStaticEnd(); ArrayList<BasicNameValuePair> params = new ArrayList<BasicNameValuePair>(); params.add(new BasicNameValuePair(PUBLIC_PARAMETERS.MOD_KEY, SHARE_PARAMETERS.MOD_VALUE)); params.add(new BasicNameValuePair(PUBLIC_PARAMETERS.CTL_KEY, SHARE_PARAMETERS.CTL_VALUE)); params.add(new BasicNameValuePair(PUBLIC_PARAMETERS.ACT_KEY, SHARE_PARAMETERS.ACT_VALUE)); params.add(new BasicNameValuePair(PUBLIC_PARAMETERS.PCODE_KEY, PCODE)); params.add(new BasicNameValuePair(PUBLIC_PARAMETERS.VERSION_KEY, VERSION)); LetvHttpStaticParameter<T, D> httpParameter = new LetvHttpStaticParameter<T, D>( head, end, params, parser, updataId); return request(httpParameter); } /** * 得到新浪第三方登录地址 * */ public static String getSinaLoginUrl() { return "http://dynamic.app.m.letv.com/android/dynamic.php?mod=passport&ctl=index&act=appsina&pcode=" + PCODE + "&version=" + VERSION; } /** * 得到QQ第三方登录地址 * */ public static String getQQLoginUrl() { return "http://dynamic.app.m.letv.com/android/dynamic.php?mod=passport&ctl=index&act=appqq&pcode=" + PCODE + "&version=" + VERSION; } /** * 第三方登录 * * @param updataId * @param baseUrl * 登录成功的数据地址 * @param parser * @return */ public static <T extends LetvBaseBean, D> LetvDataHull<T> openIDOAuthLogin( int updataId, String baseUrl, LetvMainParser<T, D> parser) { LetvHttpParameter<T, D> httpParameter = new LetvHttpParameter<T, D>( baseUrl, null, LetvHttpParameter.Type.GET, parser, updataId); return request(httpParameter); } /** * 客户端提示语接口(静态,专有接口) * * @param * @param parser * 解析器 * @return * */ public static <T extends LetvBaseBean, D> LetvDataHull<T> requestDialogMsgInfo( int updataId, String markid, LetvMainParser<T, D> parser) { // http://static.app.m.letv.com/android/mod/minfo/ctl/message/act/index/pcode/{$pcode}/version/{$version}.mindex.html String head = getStaticHead(); String end = getStaticEnd(); ArrayList<BasicNameValuePair> params = new ArrayList<BasicNameValuePair>(); params.add(new BasicNameValuePair(PUBLIC_PARAMETERS.MOD_KEY, DIALOG_PARAMETERS.MOD_VALUE)); params.add(new BasicNameValuePair(PUBLIC_PARAMETERS.CTL_KEY, DIALOG_PARAMETERS.CTL_VALUE)); params.add(new BasicNameValuePair(PUBLIC_PARAMETERS.ACT_KEY, DIALOG_PARAMETERS.ACT_VALUE)); params.add(new BasicNameValuePair(DIALOG_PARAMETERS.MARKID, markid)); params.add(new BasicNameValuePair(PUBLIC_PARAMETERS.PCODE_KEY, PCODE)); params.add(new BasicNameValuePair(PUBLIC_PARAMETERS.VERSION_KEY, VERSION)); LetvHttpStaticParameter<T, D> httpParameter = new LetvHttpStaticParameter<T, D>( head, end, params, parser, updataId); return request(httpParameter); } /** * 请求用户信息接口(动态) * * @param updataId * 刷新UI或数据的ID * @param uid * 用户ID * @param parser * 解析器 * @return XDataHull<T> 壳数据 * */ public static <T extends LetvBaseBean, D> LetvDataHull<T> requestUserInfo( int updataId, String uid, LetvMainParser<T, D> parser) { String baseUrl = getDynamicUrl(); Bundle params = new Bundle(); params.putString(PUBLIC_PARAMETERS.MOD_KEY, GETUSERBYID_PARAMETERS.MOD_VALUE); params.putString(PUBLIC_PARAMETERS.CTL_KEY, GETUSERBYID_PARAMETERS.CTL_VALUE); params.putString(PUBLIC_PARAMETERS.ACT_KEY, GETUSERBYID_PARAMETERS.ACT_VALUE); params.putString(GETUSERBYID_PARAMETERS.UID_KEY, uid); params.putString(PUBLIC_PARAMETERS.PCODE_KEY, PCODE); params.putString(PUBLIC_PARAMETERS.VERSION_KEY, VERSION); LetvHttpParameter<T, D> httpParameter = new LetvHttpParameter<T, D>( baseUrl, params, LetvHttpParameter.Type.GET, parser, updataId); return request(httpParameter); } /** * 请求用户信息接口(动态) * * @param updataId * 刷新UI或数据的ID * @param tk * 用户ID * @param parser * 解析器 * @return XDataHull<T> 壳数据 * */ public static <T extends LetvBaseBean, D> LetvDataHull<T> requestUserInfoByTk( int updataId, String tk, LetvMainParser<T, D> parser) { String baseUrl = getDynamicUrl(); Bundle params = new Bundle(); params.putString(PUBLIC_PARAMETERS.MOD_KEY, GETUSERBYTK_PARAMETERS.MOD_VALUE); params.putString(PUBLIC_PARAMETERS.CTL_KEY, GETUSERBYTK_PARAMETERS.CTL_VALUE); params.putString(PUBLIC_PARAMETERS.ACT_KEY, GETUSERBYTK_PARAMETERS.ACT_VALUE); params.putString(GETUSERBYTK_PARAMETERS.TK_KEY, tk); params.putString(PUBLIC_PARAMETERS.PCODE_KEY, PCODE); params.putString(PUBLIC_PARAMETERS.VERSION_KEY, VERSION); LetvHttpParameter<T, D> httpParameter = new LetvHttpParameter<T, D>( baseUrl, params, LetvHttpParameter.Type.GET, parser, updataId); return request(httpParameter); } /** * 用户登录接口(动态) * * @param updataId * 刷新UI或数据的ID * @param loginname * 登录名(支持邮箱/手机/用户名) * @param password * 密码 * @param registService * 默认为mapp * @param profile * 当值为1时,获取全部的用户信息 * @param parser * 解析器 * @return XDataHull<T> 壳数据 * */ public static <T extends LetvBaseBean, D> LetvDataHull<T> login( int updataId, String loginname, String password, String registService, String profile, LetvMainParser<T, D> parser) { String baseUrl = getDynamicUrl() + "?" + PUBLIC_PARAMETERS.MOD_KEY + "=" + CLIENTLOGIN_PARAMETERS.MOD_VALUE + "&" + PUBLIC_PARAMETERS.CTL_KEY + "=" + CLIENTLOGIN_PARAMETERS.CTL_VALUE + "&" + PUBLIC_PARAMETERS.ACT_KEY + "=" + CLIENTLOGIN_PARAMETERS.ACT_VALUE + "&" + PUBLIC_PARAMETERS.PCODE_KEY + "=" + PCODE + "&" + PUBLIC_PARAMETERS.VERSION_KEY + "=" + VERSION; Bundle params = new Bundle(); // params.putString(PUBLIC_PARAMETERS.MOD_KEY, // CLIENTLOGIN_PARAMETERS.MOD_VALUE); // params.putString(PUBLIC_PARAMETERS.CTL_KEY, // CLIENTLOGIN_PARAMETERS.CTL_VALUE); // params.putString(PUBLIC_PARAMETERS.ACT_KEY, // CLIENTLOGIN_PARAMETERS.ACT_VALUE); params.putString(CLIENTLOGIN_PARAMETERS.LOGINNAME_KEY, loginname); params.putString(CLIENTLOGIN_PARAMETERS.PASSWORD_KEY, password); params.putString(CLIENTLOGIN_PARAMETERS.REGISTSERVICE_KEY, registService); params.putString(CLIENTLOGIN_PARAMETERS.PROFILE_KEY, profile); params.putString(CLIENTLOGIN_PARAMETERS.PLAT_KEY, "mobile_tv"); // params.putString(PUBLIC_PARAMETERS.PCODE_KEY, PCODE); // params.putString(PUBLIC_PARAMETERS.VERSION_KEY, VERSION); LetvHttpParameter<T, D> httpParameter = new LetvHttpParameter<T, D>( baseUrl, params, LetvHttpParameter.Type.POST, parser, updataId); return request(httpParameter); } /** * 用户注册接口(动态) * * @param updataId * 刷新UI或数据的ID * @param email * 用户名 * @param mobile * 手机号 * @param password * 密码 * @param nickname * 昵称 * @param gender * 性别:0保密,1=>男,2=>女 * @param registService * 默认为mapp * @param vcode * 手机验证码 * @param parser * 解析器 * @return XDataHull<T> 壳数据 * */ public static <T extends LetvBaseBean, D> LetvDataHull<T> register( int updataId, String email, String mobile, String password, String nickname, String gender, String registService, String vcode, LetvMainParser<T, D> parser) { String baseUrl = getDynamicUrl() + "?" + PUBLIC_PARAMETERS.MOD_KEY + "=" + ADDUSER_PARAMETERS.MOD_VALUE + "&" + PUBLIC_PARAMETERS.CTL_KEY + "=" + ADDUSER_PARAMETERS.CTL_VALUE + "&" + PUBLIC_PARAMETERS.ACT_KEY + "=" + ADDUSER_PARAMETERS.ACT_VALUE + "&" + PUBLIC_PARAMETERS.PCODE_KEY + "=" + PCODE + "&" + PUBLIC_PARAMETERS.VERSION_KEY + "=" + VERSION; Bundle params = new Bundle(); params.putString(ADDUSER_PARAMETERS.EMAIL_KEY, email); params.putString(ADDUSER_PARAMETERS.MOBILE_KEY, mobile); params.putString(ADDUSER_PARAMETERS.PASSWORD_KEY, password); params.putString(ADDUSER_PARAMETERS.NICKNAME_KEY, nickname); params.putString(ADDUSER_PARAMETERS.GENDER_KEY, gender); params.putString(ADDUSER_PARAMETERS.REGISTSERVICE_KEY, registService); params.putString(ADDUSER_PARAMETERS.VCODE_KEY, vcode); LetvHttpParameter<T, D> httpParameter = new LetvHttpParameter<T, D>( baseUrl, params, LetvHttpParameter.Type.POST, parser, updataId); return request(httpParameter); } /** * 邮箱激活邮件下发(动态) * * @param updataId * 刷新UI或数据的ID * @param email * 邮箱 * @param parser * 解析器 * @return XDataHull<T> 壳数据 * */ public static <T extends LetvBaseBean, D> LetvDataHull<T> sendActiveEmail( int updataId, String email, LetvMainParser<T, D> parser) { String baseUrl = getDynamicUrl(); Bundle params = new Bundle(); params.putString(PUBLIC_PARAMETERS.MOD_KEY, SENDACTIVEEMAIL_PARAMETERS.MOD_VALUE); params.putString(PUBLIC_PARAMETERS.CTL_KEY, SENDACTIVEEMAIL_PARAMETERS.CTL_VALUE); params.putString(PUBLIC_PARAMETERS.ACT_KEY, SENDACTIVEEMAIL_PARAMETERS.ACT_VALUE); params.putString(SENDACTIVEEMAIL_PARAMETERS.EMAIL_KEY, email); params.putString(PUBLIC_PARAMETERS.PCODE_KEY, PCODE); params.putString(PUBLIC_PARAMETERS.VERSION_KEY, VERSION); LetvHttpParameter<T, D> httpParameter = new LetvHttpParameter<T, D>( baseUrl, params, LetvHttpParameter.Type.GET, parser, updataId); return request(httpParameter); } /** * 检查手机号码是否存在(动态) * * @param updataId * 刷新UI或数据的ID * @param mobile * 手机号 * @param parser * 解析器 * @return XDataHull<T> 壳数据 * */ public static <T extends LetvBaseBean, D> LetvDataHull<T> checkMobileExists( int updataId, String mobile, LetvMainParser<T, D> parser) { String baseUrl = getDynamicUrl(); Bundle params = new Bundle(); params.putString(PUBLIC_PARAMETERS.MOD_KEY, CHECKMOBILEEXISTS_PARAMETERS.MOD_VALUE); params.putString(PUBLIC_PARAMETERS.CTL_KEY, CHECKMOBILEEXISTS_PARAMETERS.CTL_VALUE); params.putString(PUBLIC_PARAMETERS.ACT_KEY, CHECKMOBILEEXISTS_PARAMETERS.ACT_VALUE); params.putString(CHECKMOBILEEXISTS_PARAMETERS.MOBILE_KEY, mobile); params.putString(PUBLIC_PARAMETERS.PCODE_KEY, PCODE); params.putString(PUBLIC_PARAMETERS.VERSION_KEY, VERSION); LetvHttpParameter<T, D> httpParameter = new LetvHttpParameter<T, D>( baseUrl, params, LetvHttpParameter.Type.GET, parser, updataId); return request(httpParameter); } /** * 检查邮箱是否存在(动态) * * @param updataId * 刷新UI或数据的ID * @param email * 邮箱 * @param parser * 解析器 * @return XDataHull<T> 壳数据 * */ public static <T extends LetvBaseBean, D> LetvDataHull<T> checkEmailExists( int updataId, String email, LetvMainParser<T, D> parser) { String baseUrl = getDynamicUrl(); Bundle params = new Bundle(); params.putString(PUBLIC_PARAMETERS.MOD_KEY, CHECKEMAILEXISTS_PARAMETERS.MOD_VALUE); params.putString(PUBLIC_PARAMETERS.CTL_KEY, CHECKEMAILEXISTS_PARAMETERS.CTL_VALUE); params.putString(PUBLIC_PARAMETERS.ACT_KEY, CHECKEMAILEXISTS_PARAMETERS.ACT_VALUE); params.putString(CHECKEMAILEXISTS_PARAMETERS.EMAIL_KEY, email); params.putString(PUBLIC_PARAMETERS.PCODE_KEY, PCODE); params.putString(PUBLIC_PARAMETERS.VERSION_KEY, VERSION); LetvHttpParameter<T, D> httpParameter = new LetvHttpParameter<T, D>( baseUrl, params, LetvHttpParameter.Type.GET, parser, updataId); return request(httpParameter); } /** * 邮箱找回密码邮件下发(动态) * * @param updataId * 刷新UI或数据的ID * @param email * 邮箱 * @param parser * 解析器 * @return XDataHull<T> 壳数据 * */ public static <T extends LetvBaseBean, D> LetvDataHull<T> sendBackPwdEmail( int updataId, String email, LetvMainParser<T, D> parser) { String baseUrl = getDynamicUrl(); Bundle params = new Bundle(); params.putString(PUBLIC_PARAMETERS.MOD_KEY, SENDBACKPWDEMAIL_PARAMETERS.MOD_VALUE); params.putString(PUBLIC_PARAMETERS.CTL_KEY, SENDBACKPWDEMAIL_PARAMETERS.CTL_VALUE); params.putString(PUBLIC_PARAMETERS.ACT_KEY, SENDBACKPWDEMAIL_PARAMETERS.ACT_VALUE); params.putString(SENDBACKPWDEMAIL_PARAMETERS.EMAIL_KEY, email); params.putString(PUBLIC_PARAMETERS.PCODE_KEY, PCODE); params.putString(PUBLIC_PARAMETERS.VERSION_KEY, VERSION); LetvHttpParameter<T, D> httpParameter = new LetvHttpParameter<T, D>( baseUrl, params, LetvHttpParameter.Type.GET, parser, updataId); return request(httpParameter); } /** * 修改密码(动态) * * @param updataId * 刷新UI或数据的ID * @param uid * 用户ID * @param oldpwd * 旧密码 * @param newpwd * 新密码 * @param parser * 解析器 * @return XDataHull<T> 壳数据 * */ public static <T extends LetvBaseBean, D> LetvDataHull<T> modifyPwd( int updataId, String tk, String oldpwd, String newpwd, LetvMainParser<T, D> parser) { String baseUrl = getDynamicUrl() + "?" + PUBLIC_PARAMETERS.MOD_KEY + "=" + MODIFYPWD_PARAMETERS.MOD_VALUE + "&" + PUBLIC_PARAMETERS.CTL_KEY + "=" + MODIFYPWD_PARAMETERS.CTL_VALUE + "&" + PUBLIC_PARAMETERS.ACT_KEY + "=" + MODIFYPWD_PARAMETERS.ACT_VALUE + "&" + PUBLIC_PARAMETERS.PCODE_KEY + "=" + PCODE + "&" + PUBLIC_PARAMETERS.VERSION_KEY + "=" + VERSION; Bundle params = new Bundle(); params.putString(MODIFYPWD_PARAMETERS.TK_KEY, tk); params.putString(MODIFYPWD_PARAMETERS.OLDPWD_KEY, oldpwd); params.putString(MODIFYPWD_PARAMETERS.NEWPWD_KEY, newpwd); // version>5.1请求类型变更为Post LetvHttpParameter<T, D> httpParameter = new LetvHttpParameter<T, D>( baseUrl, params, LetvHttpParameter.Type.POST, parser, updataId); return request(httpParameter); } /** * 手机短信下行接口 * * @param updataId * 刷新UI或数据的ID * @param mobile * 手机号 * @param parser * 解析器 * @return XDataHull<T> 壳数据 * */ public static <T extends LetvBaseBean, D> LetvDataHull<T> s_sendMobile( int updataId, String mobile, LetvMainParser<T, D> parser) { String baseUrl = getDynamicUrl(); Bundle params = new Bundle(); params.putString(PUBLIC_PARAMETERS.MOD_KEY, S_SENDMOBILE_PARAMETERS.MOD_VALUE); params.putString(PUBLIC_PARAMETERS.CTL_KEY, S_SENDMOBILE_PARAMETERS.CTL_VALUE); params.putString(PUBLIC_PARAMETERS.ACT_KEY, S_SENDMOBILE_PARAMETERS.ACT_VALUE); params.putString(S_SENDMOBILE_PARAMETERS.MOBILE_KEY, mobile); params.putString(PUBLIC_PARAMETERS.PCODE_KEY, PCODE); params.putString(PUBLIC_PARAMETERS.VERSION_KEY, VERSION); LetvHttpParameter<T, D> httpParameter = new LetvHttpParameter<T, D>( baseUrl, params, LetvHttpParameter.Type.GET, parser, updataId); return request(httpParameter); } /** * 关注赛事所有球队 */ private static interface FOCUS_MATCH { public String MOD_VALUE = "api20"; public String CTL_VALUE = "index"; public String ACT_VALUE = "focus_match"; public String MATCHID = "matchId"; /** * 1表示足球,2表示篮球 */ public String LEVEL = "level"; /** * 1表示关注,0表示取消关注 */ public String FLAG = "flag"; } /** * 焦点图 * */ private static interface FOCUS_PIC { public String MOD_VALUE = "mz"; public String CTL_VALUE = "index"; public String ACT_VALUE = "focusPic"; } /** * 视频新闻列表 */ private static interface LIST_VIDEO { public String MOD_VALUE = "mz"; public String CTL_VALUE = "listvideo"; public String ACT_VALUE = "index"; public String SC = "sc"; public String PN = "pn"; public String PS = "ps"; public String PH = "ph"; public String OR = "or"; } /** * 视频新闻筛选类型 */ private static interface VIDEO_TYPES { public String MOD_VALUE = "mz"; public String CTL_VALUE = "index"; public String ACT_VALUE = "videoTypes"; } /** * 视频相关新闻 * */ private static interface VIDEO_LIST { public String MOD_VALUE = "mz"; public String CTL_VALUE = "videolist"; public String ACT_VALUE = "detail"; public String ID = "id"; public String VID = "vid"; public String PN = "pn"; public String PS = "ps"; public String M = "m"; } /** * 用户提醒赛事列表 */ private static interface MATCHES_REMIND { public String MOD_VALUE = "api20"; public String CTL_VALUE = "index"; public String ACT_VALUE = "matches_remind"; } /** * 发表评论 */ private static interface ADD_COMMENT { public String MOD_VALUE = "api20"; public String CTL_VALUE = "comment"; public String ACT_VALUE = "addComment"; public String TOKEN = "token"; public String VID = "vid"; public String CONTENT = "content"; } /** * 获取评论列表 */ private static interface GET_COMMENT { public String MOD_VALUE = "api20"; public String CTL_VALUE = "comment"; public String ACT_VALUE = "getComment"; public String TOKEN = "token"; public String UID = "uid"; public String VID = "vid"; public String PN = "pn"; public String PS = "ps"; } /** * 请求意见反馈接口参数 * */ private static interface FEEDBACK_PARAMETERS { public String MOD_VALUE = "mz"; public String CTL_VALUE = "feedback"; public String ACT_VALUE = "post"; public String DEVID_KEY = "devid"; public String NAME_KEY = "name"; public String SYSNAME_KEY = "sysname"; public String SYSVER_KEY = "sysver"; public String MODEL_KEY = "model"; public String LMODEL_KEY = "lmodel"; public String TYPE_KEY = "type"; public String FEEDBACK_KEY = "feedback"; public String SEX_KEY = "sex"; public String AGEGROUP_KEY = "agegroup"; public String SIGN_KEY = "sign"; } /** * 赛事关注接口 */ public static <T extends LetvBaseBean, D> LetvDataHull<T> requestFocusMatch( int updataId, String matchId, String level, String flag, LetvBaseParser<T, D> parser) { String baseUrl = getWbDynamicWBUrl(); Bundle params = new Bundle(); params.putString(PUBLIC_PARAMETERS.MOD_KEY, FOCUS_MATCH.MOD_VALUE); params.putString(PUBLIC_PARAMETERS.CTL_KEY, FOCUS_MATCH.CTL_VALUE); params.putString(PUBLIC_PARAMETERS.ACT_KEY, FOCUS_MATCH.ACT_VALUE); params.putString(FOCUS_MATCH.MATCHID, matchId); params.putString(FOCUS_MATCH.LEVEL, level); params.putString(FOCUS_MATCH.FLAG, flag); params.putString(PUBLIC_PARAMETERS.DEVICE_ID, DEVICEID); params.putString(PUBLIC_PARAMETERS.PCODE_KEY, PCODE); params.putString(PUBLIC_PARAMETERS.VERSION_KEY, VERSION); LetvHttpParameter<T, D> httpParameter = new LetvHttpParameter<T, D>( baseUrl, params, LetvHttpParameter.Type.GET, parser, updataId); return request(httpParameter); } /** * 焦点图 * * @param <T> * @param <D> * @param updataId * @return */ public static <T extends LetvBaseBean, D> LetvDataHull<T> requestFocusPic( int updataId, LetvBaseParser<T, D> parser) { String head = getWbStaticHead(); String end = getWbStaticEnd(); ArrayList<BasicNameValuePair> params = new ArrayList<BasicNameValuePair>(); params.add(new BasicNameValuePair(PUBLIC_PARAMETERS.MOD_KEY, FOCUS_PIC.MOD_VALUE)); params.add(new BasicNameValuePair(PUBLIC_PARAMETERS.CTL_KEY, FOCUS_PIC.CTL_VALUE)); params.add(new BasicNameValuePair(PUBLIC_PARAMETERS.ACT_KEY, FOCUS_PIC.ACT_VALUE)); params.add(new BasicNameValuePair(PUBLIC_PARAMETERS.PCODE_KEY, PCODE)); params.add(new BasicNameValuePair(PUBLIC_PARAMETERS.VERSION_KEY, VERSION)); LetvHttpStaticParameter<T, D> httpParameter = new LetvHttpStaticParameter<T, D>( head, end, params, parser, updataId); return request(httpParameter); } /** * 视频新闻列表 * * @return */ public static <T extends LetvBaseBean, D> LetvDataHull<T> requestListVideo( int updataId, String sc, String pn, String ps, String or, LetvBaseParser<T, D> parser) { String head = getWbStaticHead(); String end = getWbStaticEnd(); ArrayList<BasicNameValuePair> params = new ArrayList<BasicNameValuePair>(); params.add(new BasicNameValuePair(PUBLIC_PARAMETERS.MOD_KEY, LIST_VIDEO.MOD_VALUE)); params.add(new BasicNameValuePair(PUBLIC_PARAMETERS.CTL_KEY, LIST_VIDEO.CTL_VALUE)); params.add(new BasicNameValuePair(PUBLIC_PARAMETERS.ACT_KEY, LIST_VIDEO.ACT_VALUE)); params.add(new BasicNameValuePair(LIST_VIDEO.SC, sc)); params.add(new BasicNameValuePair(LIST_VIDEO.PN, pn)); params.add(new BasicNameValuePair(LIST_VIDEO.PS, ps)); params.add(new BasicNameValuePair(LIST_VIDEO.PH, "420003")); params.add(new BasicNameValuePair(LIST_VIDEO.OR, or)); params.add(new BasicNameValuePair(PUBLIC_PARAMETERS.PCODE_KEY, PCODE)); params.add(new BasicNameValuePair(PUBLIC_PARAMETERS.VERSION_KEY, VERSION)); LetvHttpStaticParameter<T, D> httpParameter = new LetvHttpStaticParameter<T, D>( head, end, params, parser, updataId); return request(httpParameter); } /** * 视频新闻筛选类型 */ public static <T extends LetvBaseBean, D> LetvDataHull<T> requestVideoTypes( int updataId, LetvBaseParser<T, D> parser) { String head = getWbStaticHead(); String end = getWbStaticEnd(); ArrayList<BasicNameValuePair> params = new ArrayList<BasicNameValuePair>(); params.add(new BasicNameValuePair(PUBLIC_PARAMETERS.MOD_KEY, VIDEO_TYPES.MOD_VALUE)); params.add(new BasicNameValuePair(PUBLIC_PARAMETERS.CTL_KEY, VIDEO_TYPES.CTL_VALUE)); params.add(new BasicNameValuePair(PUBLIC_PARAMETERS.ACT_KEY, VIDEO_TYPES.ACT_VALUE)); params.add(new BasicNameValuePair(PUBLIC_PARAMETERS.PCODE_KEY, PCODE)); params.add(new BasicNameValuePair(PUBLIC_PARAMETERS.VERSION_KEY, VERSION)); LetvHttpStaticParameter<T, D> httpParameter = new LetvHttpStaticParameter<T, D>( head, end, params, parser, updataId); return request(httpParameter); } /** * 视频相关新闻 */ public static <T extends LetvBaseBean, D> LetvDataHull<T> requestVideoList( int updataId, String id, String vid, String pn, String ps, LetvBaseParser<T, D> parser) { String head = getWbStaticHead(); String end = getWbStaticEnd(); ArrayList<BasicNameValuePair> params = new ArrayList<BasicNameValuePair>(); params.add(new BasicNameValuePair(PUBLIC_PARAMETERS.MOD_KEY, VIDEO_LIST.MOD_VALUE)); params.add(new BasicNameValuePair(PUBLIC_PARAMETERS.CTL_KEY, VIDEO_LIST.CTL_VALUE)); params.add(new BasicNameValuePair(PUBLIC_PARAMETERS.ACT_KEY, VIDEO_LIST.ACT_VALUE)); params.add(new BasicNameValuePair(VIDEO_LIST.ID, id)); params.add(new BasicNameValuePair(VIDEO_LIST.VID, vid)); params.add(new BasicNameValuePair(VIDEO_LIST.PN, pn)); params.add(new BasicNameValuePair(VIDEO_LIST.PS, ps)); params.add(new BasicNameValuePair(VIDEO_LIST.M, 1 + "")); params.add(new BasicNameValuePair(PUBLIC_PARAMETERS.PCODE_KEY, PCODE)); params.add(new BasicNameValuePair(PUBLIC_PARAMETERS.VERSION_KEY, VERSION)); LetvHttpStaticParameter<T, D> httpParameter = new LetvHttpStaticParameter<T, D>( head, end, params, parser, updataId); return request(httpParameter); } /** * 用户提醒赛事列表 */ public static <T extends LetvBaseBean, D> LetvDataHull<T> requestMatchesRemind( int updataId, LetvBaseParser<T, D> parser) { String baseUrl = getWbDynamicWBUrl(); Bundle params = new Bundle(); params.putString(PUBLIC_PARAMETERS.MOD_KEY, MATCHES_REMIND.MOD_VALUE); params.putString(PUBLIC_PARAMETERS.CTL_KEY, MATCHES_REMIND.CTL_VALUE); params.putString(PUBLIC_PARAMETERS.ACT_KEY, MATCHES_REMIND.ACT_VALUE); params.putString(PUBLIC_PARAMETERS.DEVICE_ID, DEVICEID); params.putString(PUBLIC_PARAMETERS.PCODE_KEY, PCODE); params.putString(PUBLIC_PARAMETERS.VERSION_KEY, VERSION); LetvHttpParameter<T, D> httpParameter = new LetvHttpParameter<T, D>( baseUrl, params, LetvHttpParameter.Type.GET, parser, updataId); return request(httpParameter); } /** * 发表评论 */ public static <T extends LetvBaseBean, D> LetvDataHull<T> requestAddComment( int updataId, LetvBaseParser<T, D> parser, String vid, String content) { String baseUrl = getWbDynamicWBUrl(); Bundle params = new Bundle(); params.putString(PUBLIC_PARAMETERS.MOD_KEY, ADD_COMMENT.MOD_VALUE); params.putString(PUBLIC_PARAMETERS.CTL_KEY, ADD_COMMENT.CTL_VALUE); params.putString(PUBLIC_PARAMETERS.ACT_KEY, ADD_COMMENT.ACT_VALUE); params.putString(ADD_COMMENT.TOKEN, PreferencesManager.getInstance() .getSso_tk()); params.putString(ADD_COMMENT.VID, vid); params.putString(ADD_COMMENT.CONTENT, content); params.putString(PUBLIC_PARAMETERS.PCODE_KEY, PCODE); params.putString(PUBLIC_PARAMETERS.VERSION_KEY, VERSION); LetvHttpParameter<T, D> httpParameter = new LetvHttpParameter<T, D>( baseUrl, params, LetvHttpParameter.Type.GET, parser, updataId); return request(httpParameter); } /** * 获取评论列表 */ public static <T extends LetvBaseBean, D> LetvDataHull<T> requestGetComment( int updataId, LetvBaseParser<T, D> parser, String vid, String pn, String ps) { String baseUrl = getWbDynamicWBUrl(); Bundle params = new Bundle(); params.putString(PUBLIC_PARAMETERS.MOD_KEY, GET_COMMENT.MOD_VALUE); params.putString(PUBLIC_PARAMETERS.CTL_KEY, GET_COMMENT.CTL_VALUE); params.putString(PUBLIC_PARAMETERS.ACT_KEY, GET_COMMENT.ACT_VALUE); params.putString(GET_COMMENT.TOKEN, PreferencesManager.getInstance() .getSso_tk()); params.putString(GET_COMMENT.UID, PreferencesManager.getInstance() .getUserId()); params.putString(GET_COMMENT.VID, vid); params.putString(GET_COMMENT.PN, pn); params.putString(GET_COMMENT.PS, ps); params.putString(PUBLIC_PARAMETERS.PCODE_KEY, PCODE); params.putString(PUBLIC_PARAMETERS.VERSION_KEY, VERSION); LetvHttpParameter<T, D> httpParameter = new LetvHttpParameter<T, D>( baseUrl, params, LetvHttpParameter.Type.GET, parser, updataId); return request(httpParameter); } /** * 请求反馈接口(动态) * * @param updataId * 刷新UI或数据的ID * @param devid * 设备ID * @param name * 名称 * @param sysname * 系统名称 * @param sysver * 系统版本 * @param model * model * @param lmodel * lmodel * @param type * 反馈类型 0.故障投诉 1.改善建议 2.内容需求 3.新手咨询 4.其他 * @param feedback * 反馈意见 * @param email * 邮箱 * @param mobile * 手机 * @param parser * 解析器 * @return XDataHull<T> 壳数据 * */ public static <T extends LetvBaseBean, D> LetvDataHull<T> requestFeedBack( int updataId, String devid, String name, String sysname, String sysver, String model, String lmodel, String feedback, String sex, String agegroup, LetvMainParser<T, D> parser) { // http://dynamic.app.m.letv.com/android/dynamic.php?mod=mob&ctl=feedback&act=index&pcode={$pcode}&version={$version} /** * devid 设备id 字符串 是 POST提交 name 设备名称 字符串 是 POST提交 sysname 系统名称 字符串 是 * POST提交 sysver 系统版本 字符串 是 POST提交 model model 字符串 是 POST提交 lmodel * lmodel 字符串 是 POST提交 feedback 反馈内容 字符串 是 POST提交 sex 性别:1-男,2-女 字符串 是 * POST提交 agegroup 年龄段 字符串 是 * POST提交,年龄段取值对应区间:1:18岁以下,2:18岁-24岁,3:25岁-30岁 * ,4:31岁-35岁,5:36岁-40岁,6:41岁-45岁,7:46岁-50岁,8:60岁以上 sign 签名 字符串 是 * POST提交, 生成规则(拼接参数不可少,顺序不可变): * md5(devid={$devid}&name={$name}&sysname={$sysname}&sysver={$sysver}& * model * ={$model}&lmodel={$lmodel}&feedback={$feedback}&sex={$sex}&agegroup * ={$agegroup}&{$sign_key}) sign_key取值为:letvmobile2013 * * pcode 产品代码 字符串 是 GET传参:pcode version 版本号 字符串 是 GET传参:version * */ String baseUrl = getDynamicUrl() + "?" + PUBLIC_PARAMETERS.MOD_KEY + "=" + FEEDBACK_PARAMETERS.MOD_VALUE + "&" + PUBLIC_PARAMETERS.CTL_KEY + "=" + FEEDBACK_PARAMETERS.CTL_VALUE + "&" + PUBLIC_PARAMETERS.ACT_KEY + "=" + FEEDBACK_PARAMETERS.ACT_VALUE + "&" + PUBLIC_PARAMETERS.PCODE_KEY + "=" + PCODE + "&" + PUBLIC_PARAMETERS.VERSION_KEY + "=" + VERSION; Bundle params = new Bundle(); params.putString(FEEDBACK_PARAMETERS.DEVID_KEY, devid); params.putString(FEEDBACK_PARAMETERS.NAME_KEY, name); params.putString(FEEDBACK_PARAMETERS.SYSNAME_KEY, sysname); params.putString(FEEDBACK_PARAMETERS.SYSVER_KEY, sysver); params.putString(FEEDBACK_PARAMETERS.MODEL_KEY, model); params.putString(FEEDBACK_PARAMETERS.LMODEL_KEY, lmodel); params.putString(FEEDBACK_PARAMETERS.FEEDBACK_KEY, feedback); params.putString(FEEDBACK_PARAMETERS.SEX_KEY, sex); params.putString(FEEDBACK_PARAMETERS.AGEGROUP_KEY, agegroup); {// 加密字段 ArrayList<String> list = new ArrayList<String>(); list.add(FEEDBACK_PARAMETERS.DEVID_KEY); list.add(FEEDBACK_PARAMETERS.NAME_KEY); list.add(FEEDBACK_PARAMETERS.SYSNAME_KEY); list.add(FEEDBACK_PARAMETERS.SYSVER_KEY); list.add(FEEDBACK_PARAMETERS.MODEL_KEY); list.add(FEEDBACK_PARAMETERS.LMODEL_KEY); list.add(FEEDBACK_PARAMETERS.FEEDBACK_KEY); list.add(FEEDBACK_PARAMETERS.SEX_KEY); list.add(FEEDBACK_PARAMETERS.AGEGROUP_KEY); StringBuilder sb = new StringBuilder(); for (String s : list) { sb.append(s); sb.append("="); sb.append(params.get(s)); sb.append("&"); } sb.append("letvmobile2013"); params.putString(FEEDBACK_PARAMETERS.SIGN_KEY, MD5.toMd5(sb.toString())); } params.putString(PUBLIC_PARAMETERS.PCODE_KEY, PCODE); params.putString(PUBLIC_PARAMETERS.VERSION_KEY, VERSION); LetvHttpParameter<T, D> httpParameter = new LetvHttpParameter<T, D>( baseUrl, params, LetvHttpParameter.Type.POST, parser, updataId); return request(httpParameter); } /** * 通过视频id获取视频或专辑详情 * */ public static <T extends LetvBaseBean, D> LetvDataHull<T> requestGetAlbumById( int updataId, String id, LetvMainParser<T, D> parser) { String head = getStaticHead(); String end = getStaticEnd(); ArrayList<BasicNameValuePair> params = new ArrayList<BasicNameValuePair>(); params.add(new BasicNameValuePair(PUBLIC_PARAMETERS.MOD_KEY, GETALBUMBYID_PARAMETERS.MOD_VALUE)); params.add(new BasicNameValuePair(PUBLIC_PARAMETERS.CTL_KEY, GETALBUMBYID_PARAMETERS.CTL_VALUE)); params.add(new BasicNameValuePair(PUBLIC_PARAMETERS.ACT_KEY, GETALBUMBYID_PARAMETERS.ACT_VALUE)); params.add(new BasicNameValuePair(GETALBUMBYID_PARAMETERS.ID_KEY, id)); params.add(new BasicNameValuePair(PUBLIC_PARAMETERS.PCODE_KEY, PCODE)); params.add(new BasicNameValuePair(PUBLIC_PARAMETERS.VERSION_KEY, VERSION)); LetvHttpStaticParameter<T, D> httpParameter = new LetvHttpStaticParameter<T, D>( head, end, params, parser, updataId); return request(httpParameter); } /** * 请求开机广告图接口 * */ public static <T extends LetvBaseBean, D> LetvDataHull<T> requestGetPushAd( int updataId, LetvBaseParser<T, D> parser) { LetvHttpParameter<T, D> httpParameter = new LetvHttpParameter<T, D>( WB_STATIC_PUSH_AD_IMAGE, null, LetvHttpParameter.Type.GET, parser, updataId); return request(httpParameter); } public static <T extends LetvBaseBean, D> LetvDataHull<T> requestShowWorldCup( int updataId, LetvBaseParser<T, D> parser) { String url = String.format(getWorldCupUrl(), LetvUtil.getClientVersionName(), LetvUtil.getPcode()); LetvHttpParameter<T, D> httpParameter = new LetvHttpParameter<T, D>( url, null, LetvHttpParameter.Type.GET, parser, updataId); return request(httpParameter); } }