• Android 封装http请求的工具类


    import java.io.BufferedReader;
    import java.io.InputStreamReader;
    import java.net.URLEncoder;
    import java.security.KeyStore;
    import java.util.Iterator;
    import java.util.List;
    import java.util.Map;
    import java.util.Map.Entry;
    
    import org.apache.http.HttpResponse;
    import org.apache.http.HttpVersion;
    import org.apache.http.client.HttpClient;
    import org.apache.http.client.entity.UrlEncodedFormEntity;
    import org.apache.http.client.methods.HttpGet;
    import org.apache.http.client.methods.HttpPost;
    import org.apache.http.conn.ClientConnectionManager;
    import org.apache.http.conn.scheme.PlainSocketFactory;
    import org.apache.http.conn.scheme.Scheme;
    import org.apache.http.conn.scheme.SchemeRegistry;
    import org.apache.http.conn.ssl.SSLSocketFactory;
    import org.apache.http.impl.client.DefaultHttpClient;
    import org.apache.http.impl.conn.tsccm.ThreadSafeClientConnManager;
    import org.apache.http.message.BasicNameValuePair;
    import org.apache.http.params.BasicHttpParams;
    import org.apache.http.params.HttpParams;
    import org.apache.http.params.HttpProtocolParams;
    import org.apache.http.protocol.HTTP;
    import org.apache.http.util.EntityUtils;
    
    import android.content.Context;
    import android.net.ConnectivityManager;
    
    /**
     * 网络工具类
     * 
     * @author malinkang
     * 
     */
    
    public class NetUtils {
        /**
         * 对网络连接状态进行判断
         * 
         * @return true, 可用; false, 不可用
         */
        public static boolean isOpenNetwork(Context context) {
            ConnectivityManager connManager = (ConnectivityManager) context
                    .getSystemService(Context.CONNECTIVITY_SERVICE);
            if (connManager.getActiveNetworkInfo() != null) {
                return connManager.getActiveNetworkInfo().isAvailable();
            }
    
            return false;
        }
    
        /**
         * get请求
         * 
         * @param urlString
         * @param params
         * @return
         */
        public static String getRequest(String urlString, Map<String, String> params) {
    
            try {
                StringBuilder urlBuilder = new StringBuilder();
                urlBuilder.append(urlString);
    
                if (null != params) {
    
                    urlBuilder.append("?");
    
                    Iterator<Entry<String, String>> iterator = params.entrySet()
                            .iterator();
    
                    while (iterator.hasNext()) {
                        Entry<String, String> param = iterator.next();
                        urlBuilder
                                .append(URLEncoder.encode(param.getKey(), "UTF-8"))
                                .append('=')
                                .append(URLEncoder.encode(param.getValue(), "UTF-8"));
                        if (iterator.hasNext()) {
                            urlBuilder.append('&');
                        }
                    }
                }
                // 创建HttpClient对象
                HttpClient client = getNewHttpClient();
                // 发送get请求创建HttpGet对象
                HttpGet getMethod = new HttpGet(urlBuilder.toString());
                HttpResponse response = client.execute(getMethod);
                // 获取状态码
                int res = response.getStatusLine().getStatusCode();
                if (res == 200) {
    
                    StringBuilder builder = new StringBuilder();
                    // 获取响应内容
                    BufferedReader reader = new BufferedReader(
                            new InputStreamReader(response.getEntity().getContent()));
    
                    for (String s = reader.readLine(); s != null; s = reader
                            .readLine()) {
                        builder.append(s);
                    }
                    return builder.toString();
                }
            } catch (Exception e) {
    
            }
    
            return null;
        }
    
        /**
         * post请求
         * 
         * @param urlString
         * @param params
         * @return
         */
        public static String postRequest(String urlString,
                List<BasicNameValuePair> params) {
    
            try {
                // 1. 创建HttpClient对象
                HttpClient client = getNewHttpClient();
                // 2. 发get请求创建HttpGet对象
                HttpPost postMethod = new HttpPost(urlString);
                postMethod.setEntity(new UrlEncodedFormEntity(params, HTTP.UTF_8));
                HttpResponse response = client.execute(postMethod);
                int statueCode = response.getStatusLine().getStatusCode();
                if (statueCode == 200) {
                    System.out.println(statueCode);
                    return EntityUtils.toString(response.getEntity());
                }
            } catch (Exception e) {
    
            }
    
            return null;
        }
    
        // 保存时+当时的秒数,
        public static long expires(String second) {
            Long l = Long.valueOf(second);
    
            return l * 1000L + System.currentTimeMillis();
        }
    
        private static HttpClient getNewHttpClient() {
            try {
                KeyStore trustStore = KeyStore.getInstance(KeyStore
                        .getDefaultType());
                trustStore.load(null, null);
    
                SSLSocketFactory sf = new SSLSocketFactoryEx(trustStore);
                sf.setHostnameVerifier(SSLSocketFactory.ALLOW_ALL_HOSTNAME_VERIFIER);
    
                HttpParams params = new BasicHttpParams();
                HttpProtocolParams.setVersion(params, HttpVersion.HTTP_1_1);
                HttpProtocolParams.setContentCharset(params, HTTP.UTF_8);
    
                SchemeRegistry registry = new SchemeRegistry();
                registry.register(new Scheme("http", PlainSocketFactory
                        .getSocketFactory(), 80));
                registry.register(new Scheme("https", sf, 443));
    
                ClientConnectionManager ccm = new ThreadSafeClientConnManager(
                        params, registry);
    
                return new DefaultHttpClient(ccm, params);
            } catch (Exception e) {
                return new DefaultHttpClient();
            }
        }
    }

    另一种封装好的get请求,最近经常用的:

    public class HttpUtils {
    
        private final static String TAG = "EasyTokenSevice";
        private final static int connectionTimeout = 5000;
        private static InputStream inputStream = null;
        private static String urlStr = null;
        private static boolean isConnecting;
    
        /**
         * 封装http get请求
         * 
         * @param url
         * @return is
         */
        public static InputStream get(String url)throws IOException ,Exception {
    
            urlStr = url;
            isConnecting = true;
    
                HttpGet httpGet = new HttpGet(urlStr);
                HttpParams httpParameters = new BasicHttpParams();
                HttpConnectionParams.setConnectionTimeout(httpParameters,
                        connectionTimeout);
    
                DefaultHttpClient httpClient = new DefaultHttpClient(httpParameters);
                HttpResponse response = httpClient.execute(httpGet);
    
                if (response.getStatusLine().getStatusCode() == HttpStatus.SC_OK) {
                    HttpEntity entity = response.getEntity();
                    inputStream = entity.getContent();
                    return inputStream;}
                else return null;
                    
                    
            
            
        }
    }
  • 相关阅读:
    游记-HNOI2019
    题解-COCI2015Norma
    题解-Codeforces671D Roads in Yusland
    题解-POI2014 Supercomputer
    笔记-莫队的强制在线
    题解-HAOI2018全套
    题解-UOJ455 雪灾与外卖
    题解-Codeforces917D Stranger Trees
    题解-AtCoder Code-Festival2017 Final-J Tree MST
    Linux 配置svn
  • 原文地址:https://www.cnblogs.com/yejiurui/p/3075493.html
Copyright © 2020-2023  润新知