package com.ywwxhz.lib.kits; import android.content.Context; import android.net.ConnectivityManager; import android.net.NetworkInfo; import com.loopj.android.http.AsyncHttpClient; import com.loopj.android.http.RequestParams; import com.loopj.android.http.ResponseHandlerInterface; import com.loopj.android.http.SyncHttpClient; import com.ywwxhz.MyApplication; import com.ywwxhz.lib.Configure; import org.apache.http.Header; import org.apache.http.impl.client.BasicCookieStore; import org.apache.http.message.BasicHeader; /** * Created by ywwxhz on 2014/10/17. */ public class NetKit { private static NetKit instance = new NetKit(); private AsyncHttpClient mAsyncHttpClient; private SyncHttpClient mSyncHttpClient; public static final String CONTENT_TYPE = "application/x-www-form-urlencoded; charset=UTF-8"; private NetKit() { mAsyncHttpClient = new AsyncHttpClient(); mSyncHttpClient = new SyncHttpClient(); setupHttpClient(mAsyncHttpClient); setupHttpClient(mSyncHttpClient); } private void setupHttpClient(AsyncHttpClient client) { client.setCookieStore(new BasicCookieStore()); client.setConnectTimeout(3000); client.setResponseTimeout(6000); client.setMaxRetriesAndTimeout(3, 200); client.setUserAgent("Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/40.0.2214.45 Safari/537.36"); } public static int getConnectedType() { ConnectivityManager mConnectivityManager = (ConnectivityManager) MyApplication.getInstance() .getSystemService(Context.CONNECTIVITY_SERVICE); NetworkInfo mNetworkInfo = mConnectivityManager.getActiveNetworkInfo(); if (mNetworkInfo != null && mNetworkInfo.isAvailable()) { return mNetworkInfo.getType(); } return -1; } public static NetKit getInstance() { return instance; } public static AsyncHttpClient getAsyncClient() { return instance.mAsyncHttpClient; } public static SyncHttpClient getSyncClient() { return instance.mSyncHttpClient; } public void getNewslistByPage(int page, String type, ResponseHandlerInterface handlerInterface) { RequestParams params = new RequestParams(); params.add("type", type); params.add("page", page + ""); params.add("_", System.currentTimeMillis() + ""); mAsyncHttpClient.get(null, Configure.NEWS_LIST_URL, getAuthHeader(), params, handlerInterface); } public void getNewslistByTopic(int page, String type, ResponseHandlerInterface handlerInterface) { RequestParams params = new RequestParams(); params.add("id", type); params.add("page", page + ""); params.add("_", System.currentTimeMillis() + ""); mAsyncHttpClient.get(null, Configure.TOPIC_NEWS_LIST, getAuthHeader(), params, handlerInterface); } public void getNewsBySid(String sid, ResponseHandlerInterface handlerInterface) { mAsyncHttpClient.get(Configure.buildArticleUrl(sid), handlerInterface); } public void getNewsBySidSync(String sid, ResponseHandlerInterface handlerInterface) { mSyncHttpClient.get(Configure.buildArticleUrl(sid), handlerInterface); } public void getCommentBySnAndSid(String sn, String sid, ResponseHandlerInterface handlerInterface) { RequestParams params = new RequestParams(); params.add("op", "1," + sid + "," + sn); mAsyncHttpClient.post(null, Configure.COMMENT_URL, getAuthHeader(), params, CONTENT_TYPE, handlerInterface); } public void setCommentAction(String op, String sid, String tid, String csrf_token, ResponseHandlerInterface handlerInterface) { RequestParams params = new RequestParams(); params.add("op", op); params.add("sid", sid); params.add("tid", tid); params.add("csrf_token", csrf_token); mAsyncHttpClient.post(null, Configure.COMMENT_VIEW, getAuthHeader(), params, CONTENT_TYPE, handlerInterface); } public static Header[] getAuthHeader() { return new Header[]{ new BasicHeader("Referer", "http://www.cnbeta.com/"), new BasicHeader("Origin", "http://www.cnbeta.com"), new BasicHeader("X-Requested-With", "XMLHttpRequest") }; } public boolean isNetworkConnected() { ConnectivityManager cm = (ConnectivityManager) MyApplication.getInstance() .getSystemService(Context.CONNECTIVITY_SERVICE); if (cm != null) { //如果仅仅是用来判断网络连接 //则可以使用 cm.getActiveNetworkInfo().isAvailable(); NetworkInfo[] info = cm.getAllNetworkInfo(); if (info != null) { for (NetworkInfo anInfo : info) { if (anInfo.getState() == NetworkInfo.State.CONNECTED) { return true; } } } } return false; } public static boolean isWifiConnected() { ConnectivityManager cm = (ConnectivityManager) MyApplication.getInstance() .getSystemService(Context.CONNECTIVITY_SERVICE); NetworkInfo networkINfo = cm.getActiveNetworkInfo(); return networkINfo != null && networkINfo.getType() == ConnectivityManager.TYPE_WIFI; } public static boolean isMobileConnected() { ConnectivityManager cm = (ConnectivityManager) MyApplication.getInstance() .getSystemService(Context.CONNECTIVITY_SERVICE); NetworkInfo networkINfo = cm.getActiveNetworkInfo(); return networkINfo != null && networkINfo.getType() == ConnectivityManager.TYPE_MOBILE; } public static int getNetType(Context context) { ConnectivityManager connectivityManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE); NetworkInfo networkInfo = connectivityManager.getActiveNetworkInfo(); if (!(networkInfo != null && networkInfo.isConnected())) { return 0; } int type = networkInfo.getType(); if (type == ConnectivityManager.TYPE_WIFI) { return 1; } else { return 2; } } }