Https联网工具类

Https联网工具类 get  post

调用时 只需传入url,和要提交的参数queryString  有cookie时也可以传入

放回的是字符串 连接方式我在Http里解决了你们只需要拼接对

拼接格式 路径:https://emall.licaike.com/weixin/web/bind?        参数:loginInit=loginInit&knowChannel=APP_LCK_ADR_KC

import java.io.ByteArrayOutputStream;

import java.io.InputStream;
import java.io.OutputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import java.security.cert.CertificateException;
import java.security.cert.X509Certificate;

import javax.net.ssl.HostnameVerifier;
import javax.net.ssl.HttpsURLConnection;
import javax.net.ssl.SSLContext;
import javax.net.ssl.SSLSession;
import javax.net.ssl.TrustManager;
import javax.net.ssl.X509TrustManager;

import android.util.Log;

public class HttpService {

    /** 连接或读取超时单位毫秒 */
    private static final int CONNECTION_TIMEOUT = 30000;// 15000

    protected static String httpGet(String url, String queryString, String cookie)
            throws Exception {

        if (isNullEmptyBlank(url)) {
            return "url不能为空";
        }
        if (!isNullEmptyBlank(queryString)) {
            url += ("?" + queryString);
        }

        URL urlPath = null;
        HttpURLConnection conn = null;
        InputStream is = null;
        try {
            urlPath = new URL(url);
            i("httpGet", "urlPath>>>>>" + urlPath);
            conn = (HttpURLConnection) urlPath.openConnection();
            conn.setDoInput(true);
            conn.setUseCaches(false);
            conn.setInstanceFollowRedirects(true);
            // 设置连接主机超时(单位:毫秒)
            conn.setConnectTimeout(CONNECTION_TIMEOUT);
            // 设置从主机读取数据超时(单位:毫秒)
            conn.setReadTimeout(CONNECTION_TIMEOUT);
            conn.setRequestProperty("Accept", "*/*");
            conn.setRequestProperty("Content-Type",
                    "application/x-www-form-urlencoded");
            conn.setRequestMethod("GET");
            if (!isNullEmptyBlank(cookie)) {
                conn.setRequestProperty("Cookie", cookie);
                i("httpGet", "cookie>>>>>" + cookie);
            }
            if (HttpURLConnection.HTTP_OK == conn.getResponseCode()) {
                is = conn.getInputStream();
                String str = readData(is, "UTF-8");
                e("httpGet", "str>>>>>" + str);
                return str;
            }
        } catch (Exception e) {
            throw new Exception(e.getMessage());
        } finally {
            try {
                if (is != null)
                    is.close();
                if (conn != null)
                    conn.disconnect();
            } catch (Exception e) {
            } finally {
                is = null;
                conn = null;
            }
        }
        return null;
    }

    protected static String httpsPost(String url, String queryString, String cookie)
            throws Exception {

        if (isNullEmptyBlank(url)) {
            return "url不能为空";
        }

        URL urlPath = null;
        HttpsURLConnection conn = null;
        OutputStream os = null;
        InputStream is = null;

        try {
            SSLContext sslContext = SSLContext.getInstance("TLS");
            sslContext.init(null,
                    new TrustManager[] { new MyX509TrustManager() },
                    new java.security.SecureRandom());
            HttpsURLConnection.setDefaultSSLSocketFactory(sslContext
                    .getSocketFactory());
            HttpsURLConnection
                    .setDefaultHostnameVerifier(new MyHostnameVerifier());
            urlPath = new URL(url);
            conn = (HttpsURLConnection) urlPath.openConnection();
            conn.setDoOutput(true);
            conn.setDoInput(true);
            conn.setUseCaches(false);
            conn.setInstanceFollowRedirects(true);
            // 设置连接主机超时(单位:毫秒)
            conn.setConnectTimeout(CONNECTION_TIMEOUT);
            // 设置从主机读取数据超时(单位:毫秒)
            conn.setReadTimeout(CONNECTION_TIMEOUT);
            conn.setRequestProperty("Accept", "*/*");
            conn.setRequestProperty("Content-Type",
                    "application/x-www-form-urlencoded");
            conn.setRequestMethod("POST");
            if (!isNullEmptyBlank(cookie)) {
                conn.setRequestProperty("Cookie", cookie);
                i("httpsPost", "cookie>>>>>" + cookie);
            }
            if (!isNullEmptyBlank(queryString)) {
                os = conn.getOutputStream();
                os.write(queryString.getBytes("UTF-8"));
                os.flush();
                i("httpsPost", url + queryString);
            }
            if (HttpURLConnection.HTTP_OK == conn.getResponseCode()) {
                is = conn.getInputStream();
                String str = readData(is, "UTF-8");
                e("httpsPost", "str>>>>>" + str);
                return str;
            }
        } catch (Exception e) {
            throw new Exception(e.getMessage());
        } finally {
            try {
                if (os != null)
                    os.close();
                if (is != null)
                    is.close();
                if (conn != null)
                    conn.disconnect();
            } catch (Exception e) {
                e.printStackTrace();
            } finally {
                os = null;
                is = null;
                conn = null;
            }
        }
        return null;
    }

    protected static String httpPost(String url, String queryString)
            throws Exception {
        if (isNullEmptyBlank(url)) {
            return "url不能为空";
        }

        URL urlPath = null;
        HttpURLConnection conn = null;
        OutputStream os = null;
        InputStream is = null;

        try {
            urlPath = new URL(url);
            conn = (HttpURLConnection) urlPath.openConnection();
            conn.setDoOutput(true);
            conn.setDoInput(true);
            conn.setUseCaches(false);
            conn.setInstanceFollowRedirects(true);
            // 设置连接主机超时(单位:毫秒)
            conn.setConnectTimeout(CONNECTION_TIMEOUT);
            // 设置从主机读取数据超时(单位:毫秒)
            conn.setReadTimeout(CONNECTION_TIMEOUT);
            conn.setRequestProperty("Accept", "*/*");
            conn.setRequestProperty("Content-Type",
                    "application/x-www-form-urlencoded");
            conn.setRequestMethod("POST");
            if (!isNullEmptyBlank(queryString)) {
                os = conn.getOutputStream();
                os.write(queryString.getBytes("UTF-8"));
                os.flush();
                i("httpPost", url + "?" + queryString);
            }
            if (HttpURLConnection.HTTP_OK == conn.getResponseCode()) {
                is = conn.getInputStream();
                String str = readData(is, "UTF-8");
                e("httpPost", "str>>>>>" + str);
            }
        } catch (Exception e) {
            throw new Exception(e.getMessage());
        } finally {
            try {
                if (os != null)
                    os.close();
                if (is != null)
                    is.close();
                if (conn != null)
                    conn.disconnect();
            } catch (Exception e) {
                e.printStackTrace();
            } finally {
                os = null;
                is = null;
                conn = null;
            }
        }
        return null;
    }

    private static String readData(InputStream inSream, String charsetName)
            throws Exception {
        ByteArrayOutputStream outStream = new ByteArrayOutputStream();
        byte[] buffer = new byte[4096];
        int len = -1;
        while ((len = inSream.read(buffer)) != -1) {
            outStream.write(buffer, 0, len);
        }
        byte[] data = outStream.toByteArray();
        outStream.close();
        inSream.close();
        return new String(data, charsetName);
    }

    private static class MyHostnameVerifier implements HostnameVerifier {
        public boolean verify(String hostname, SSLSession session) {
            return true;
        }
    }

    private static class MyX509TrustManager implements X509TrustManager {
        public X509Certificate[] getAcceptedIssuers() {
            return null;
        }

        public void checkServerTrusted(X509Certificate[] chain, String authType)
                throws CertificateException {
        }

        public void checkClientTrusted(X509Certificate[] chain, String authType)
                throws CertificateException {
        }
    };

    private static void i(String tag, String msg) {
        if (tag == null || msg == null) {
            return;
        }
        Log.i(tag, msg);
    }

    private static void e(String tag, String msg) {
        if (tag == null || msg == null) {
            return;
        }
        Log.e(tag, msg);
    }

    /**
     * 判断字符串是否为空(包含null与"","    ")
     *
     * @param str
     * @return
     */
    private static boolean isNullEmptyBlank(String str) {
        if (str == null || "".equals(str) || "".equals(str.trim()))
            return true;
        return false;
    }
}

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。