zoukankan      html  css  js  c++  java
  • Android-HttpsURLConnectionHelp工具类

    Java版(HttpURLConnection)Https请求工具类

    public class HttpsURLConnectionHelp {
    
        /**
         * 加密协议
         */
        public static TrustManager truseAllManager = new X509TrustManager() {
    
            public void checkClientTrusted(
                    java.security.cert.X509Certificate[] arg0, String arg1)
                    throws CertificateException {
            }
    
            public void checkServerTrusted(
                    java.security.cert.X509Certificate[] arg0, String arg1)
                    throws CertificateException {
            }
    
            public java.security.cert.X509Certificate[] getAcceptedIssuers() {
                return null;
            }
        };
    
        public static String requesByGetToString(String url, String jsessionid) {
            String message = null;
            try {
                HttpsURLConnection conn = getHttpsConnection(url);
    
                conn.setRequestProperty("cookie", jsessionid);
                // 请求成功(相应码 == 200)
                if (conn.getResponseCode() == HttpURLConnection.HTTP_OK) {
                    // 取得该连接的输入流,以读取响应内容
                    InputStreamReader insr = new InputStreamReader(
                            conn.getInputStream());
                    StringBuffer strb = new StringBuffer();
                    int s;
                    while ((s = insr.read()) != -1) {
                        strb.append((char) s);
                    }
                    message = strb.toString();
                    ELog.i("", message);
                }
            } catch (Exception e) {
                e.printStackTrace();
            }
            return message;
        }
    
        public static InputStream requesByGetToStream(String url) {
            InputStream inputStream = null;
            try {
                HttpsURLConnection conn = getHttpsConnection(url);
                //自动重定向新地址
                conn.setInstanceFollowRedirects(true);
                // 请求成功(相应码 == 200)
                if (conn.getResponseCode() == HttpURLConnection.HTTP_OK) {
                    // 取得该连接的输入流,以读取响应内容
                    inputStream = conn.getInputStream();
                }
            } catch (Exception e) {
                e.printStackTrace();
            }
            return inputStream;
        }
    
    
        public static Object[] requesByGetToBitmap(String url) {
            Object[] objects = null;
            try {
                HttpsURLConnection conn = getHttpsConnection(url);
                //自动重定向新地址
                conn.setInstanceFollowRedirects(true);
                // 请求成功(相应码 == 200)
                if (conn.getResponseCode() == HttpURLConnection.HTTP_OK) {
                    objects = new Object[2];
                    String cookieval = conn.getHeaderField("set-cookie");
                    String jsessionid = cookieval.substring(0, cookieval.indexOf(";"));
    
                    InputStream is = conn.getInputStream();
                    Bitmap bitmap = BitmapFactory.decodeStream(is);
    
                    objects[0] = jsessionid;
                    objects[1] = bitmap;
                }
            } catch (Exception e) {
                e.printStackTrace();
            }
            return objects;
        }
    
        public String requesByGetToParams(String urlStr, Map<String,String> params, String jsessionid){
            String responseContent = null;
            StringBuilder sb = new StringBuilder(urlStr);
            sb.append("?");
            for(Map.Entry<String, String> entry:params.entrySet()){
                sb.append(entry.getKey());
                sb.append("=");
                //防止中文乱码
                sb.append(entry.getValue());
                sb.append("&");
            }
            sb.deleteCharAt(sb.length() -1);
            try {
                HttpsURLConnection conn = getHttpsConnection(urlStr);
    
                conn.setRequestProperty("cookie", jsessionid);
    
                //请求成功(相应码 == 200)
                if(conn.getResponseCode() == HttpURLConnection.HTTP_OK){
                    InputStream is = conn.getInputStream();
                    int s;
                    StringBuffer strb = new StringBuffer();
                    while((s = is.read()) != -1){
                        strb.append((char)s);
                    }
                    responseContent = strb.toString();
                }
            } catch (Exception e) {
                e.printStackTrace();
            }
            return responseContent;
        }
    
        public static HttpsURLConnection getHttpsConnection(String urlStr) {
            // 从上述SSLContext对象中得到SSLSocketFactory对象
            HttpsURLConnection conn = null;
            try {
                // 创建SSLContext对象,并使用我们指定的信任管理器初始化
                SSLContext sslContext = SSLContext.getInstance("TLS");
                sslContext.init(null, new TrustManager[] { truseAllManager }, null);
                SSLSocketFactory ssf = sslContext.getSocketFactory();
    
                URL myURL = new URL(urlStr);
    
                conn = (HttpsURLConnection) myURL.openConnection();
                //设置加密协议
                conn.setSSLSocketFactory(ssf);
                //设置请求方式
                conn.setRequestMethod("GET");
                //设置连接超时时长
                conn.setConnectTimeout(15000);
    
                conn.setReadTimeout(15000);
    
                conn.setHostnameVerifier(new HostnameVerifier(){
                    public boolean verify(String hostname, SSLSession session) {
                            return true;   
                    }});
    
            } catch (Exception e) {
                e.printStackTrace();
            }
            return conn;
        }
    }
  • 相关阅读:
    FTP登录 下载上传文件(太过简单暂时未写)
    依据文档批次命名图片
    UDP协议
    tcp协议(三次握手 四次挥手)
    1956年人工智能元年,而今天是我进入人工智能的日子,哈哈哈
    对比文件简易代码
    爬取网站内容,存放到excel中
    Redis-Py 使用
    python list减法
    sort 使用key函数时,赋多个排序参数
  • 原文地址:https://www.cnblogs.com/android-deli/p/10322147.html
Copyright © 2011-2022 走看看