package com.myqsc.mobile2.network; import android.content.Context; import com.myqsc.mobile2.login.uti.PersonalDataHelper; import com.myqsc.mobile2.support.database.structure.UserIDStructure; import com.myqsc.mobile2.uti.LogHelper; import org.apache.http.HttpResponse; import org.apache.http.client.ClientProtocolException; import org.apache.http.client.HttpClient; import org.apache.http.client.methods.HttpGet; import org.apache.http.impl.client.DefaultHttpClient; import org.apache.http.util.EntityUtils; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.io.Reader; import java.io.UnsupportedEncodingException; import java.net.HttpURLConnection; import java.net.MalformedURLException; import java.net.URL; import java.net.URLConnection; import java.net.URLEncoder; import java.util.HashMap; import java.util.Map; import javax.net.ssl.SSLException; import javax.net.ssl.SSLHandshakeException; /** * Created by richard on 13-9-2. */ public class DataUpdater { private static final String HTTP_PROTOCOL = "https://m.myqsc.com/api/v2/"; // public final static String COMMON_HASH = "share/hash"; public final static String COMMON_TEACHER = "share/teacher"; public final static String COMMON_XIAOCHE = "share/xiaoche"; public final static String COMMON_XIAOLI = "share/xiaoli"; // public final static String COMMON_SHIJIAN = "share/shijian"; // public final static String COMMON_SHIJIAN_DETAIL = "share/notice"; public final static String JW_VALIDATE = "jw/validate"; // public final static String JW_HASH = "jw/hash"; // public final static String JW_INFO = "jw/stuinfo"; public final static String JW_KEBIAO = "jw/kebiao"; public final static String JW_CHENGJI = "jw/chengji"; public final static String JW_KAOSHI = "jw/kaoshi"; public final static String HOMEWORK = "404"; public final static String COMMON_NOTICE = "notice/events/hot"; public final static Map<String, String> name = new HashMap<String, String>(); static{ // name.put(COMMON_HASH, HTTP_PROTOCOL + COMMON_HASH); name.put(COMMON_TEACHER, HTTP_PROTOCOL + COMMON_TEACHER); name.put(COMMON_XIAOCHE, HTTP_PROTOCOL + COMMON_XIAOCHE); name.put(COMMON_XIAOLI, HTTP_PROTOCOL + COMMON_XIAOLI); // name.put(COMMON_SHIJIAN, HTTP_PROTOCOL + COMMON_SHIJIAN); // name.put(COMMON_SHIJIAN_DETAIL, HTTP_PROTOCOL + COMMON_SHIJIAN_DETAIL); name.put(JW_VALIDATE, HTTP_PROTOCOL + JW_VALIDATE); // name.put(JW_HASH, HTTP_PROTOCOL + JW_HASH); // name.put(JW_INFO, HTTP_PROTOCOL + JW_INFO); name.put(JW_KEBIAO, HTTP_PROTOCOL + JW_KEBIAO); name.put(JW_CHENGJI, HTTP_PROTOCOL + JW_CHENGJI); name.put(JW_KAOSHI, HTTP_PROTOCOL + JW_KAOSHI); name.put(COMMON_NOTICE, "http://notice.myqsc.com/events/hot"); } public DataUpdater() { } public static String update(String key, Context context) { String url = name.get(key); assert url != null; UserIDStructure structure = new PersonalDataHelper(context).getCurrentUser(); if (structure == null) return null; try { if (url.startsWith("https") && url.contains("jw/")) { //only JW send username and password url += "?stuid=" + URLEncoder.encode(structure.uid, "UTF-8") + "&pwd=" + URLEncoder.encode(structure.pwd, "UTF-8"); } return get(url); } catch (UnsupportedEncodingException e) { e.printStackTrace(); } return null; } public static String get(String url) { try { StringBuilder result = new StringBuilder(); LogHelper.d("URL:" + url); URL address = new URL(url); HttpURLConnection urlConnection = (HttpURLConnection) address.openConnection(); urlConnection.setRequestProperty("X-Requested-With", "XMLHttpRequest"); urlConnection.setRequestProperty("X-Need-Escape", "0"); urlConnection.setRequestProperty("Accept-Encoding", "gzip"); urlConnection.setConnectTimeout(15000); //15秒钟超时 urlConnection.setReadTimeout(10000); //10s 下载超时 urlConnection.connect(); BufferedReader reader = new BufferedReader( new InputStreamReader( urlConnection.getInputStream())); String line; while ((line = reader.readLine()) != null) { result.append(line); } reader.close(); return result.toString(); } catch (SSLException e){ //ssl 证书失败 e.printStackTrace(); } catch (MalformedURLException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } return null; } }