• java爬虫HttpURLConnect获取网页源码



    public abstract class HttpsURLConnection extends HttpURLConnection
    
    

    HttpsURLConnection 扩展 HttpURLConnection,支持各种特定于 https 功能。

    有关 https 规范的更多详细信息,请参见 http://www.w3.org/pub/WWW/Protocols/RFC 2818

        从1.4版本开始,此类使用 HostnameVerifierSSLSocketFactory。为这两个类都定义了默认实现。但是,可以根据每个类(静态的)或每个实例来替换该实现。所有新 HttpsURLConnection 实例在创建时将被分配“默认的”静态值,通过在连接前调用每个实例适当的 set 方法可以重写这些值。

        构造方法  :

          HttpsURLConnection(URL url)  使用指定的 URL 创建 HttpsURLConnection

        参数 :  URL

        方法摘要  :    

     abstract  String   getCipherSuite() 
                    返回在此连接上使用的密码套件。

    static HostnameVerifier  getDefaultHostnameVerifier() 
                    获取此类的新实例所继承的默认 HostnameVerifier

    static SSLSocketFactory  getDefaultSSLSocketFactory() 
                    获取此类的新实例所继承的默认静态 SSLSocketFactory

    HostnameVerifier  getHostnameVerifier() 
                    获取此实例适当的 HostnameVerifier

    abstract  Certificate[]  getLocalCertificates() 
                    返回握手期间发送给服务器的证书。

    Principal  getLocalPrincipal() 
                    返回握手期间发送到服务器的主体。

    Principal  getPeerPrincipal() 
                    返回服务器的主体,它是作为定义会话的一部分而建立的。

    abstract  Certificate[]  getServerCertificates() 
                    返回服务器的证书链,它是作为定义会话的一部分而建立的。

    SSLSocketFactory  getSSLSocketFactory() 
                    获取为安全 https URL 连接创建套接字时使用的 SSL 套接字工厂。

    static void  setDefaultHostnameVerifier(HostnameVerifier v) 
                    设置此类的新实例所继承的默认 HostnameVerifier

    static void setDefaultSSLSocketFactory(SSLSocketFactory sf) 
                    设置此类的新实例所继承的默认 SSLSocketFactory

    void setHostnameVerifier(HostnameVerifier v) 
                    设置此实例的 HostnameVerifier

    void setSSLSocketFactory(SSLSocketFactory sf) 
                    设置当此实例为安全 https URL 连接创建套接字时使用的 SSLSocketFactory


               示例代码如下,采取了单例设计模式 。

    package HttpURLConnect;
    
    import java.io.BufferedReader;
    import java.io.InputStreamReader;
    import java.net.HttpURLConnection;
    import java.net.URL;
    
    public class GetUrl {
        private static GetUrl getUrl ;
        private static String index ;
        private GetUrl(String url) {
            URL u ;
            HttpURLConnection httpURLConnection ;
            BufferedReader bf ;
            String readLine  ;
            try{
                u = new URL(url) ;
                httpURLConnection = (HttpURLConnection)u.openConnection() ;
                int responsecode = httpURLConnection.getResponseCode() ;  // 返回码
                if(responsecode==200) {
                    bf = new BufferedReader(new InputStreamReader(httpURLConnection.getInputStream(), "UTF-8"));
                    while ((readLine = bf.readLine()) != null) {
                        index += readLine += "
    ";
                    }
                }else{
                    System.out.println("NOT  "+responsecode);
                }
            }catch(Exception e){
                System.out.println("Exception->"+e);
            }
        }
        public static String getGetUrl(String url){
            getUrl = new GetUrl(url);
            return getUrl.index ;
        } 
    }

               

        

  • 相关阅读:
    webpack特点,安装,兼容性
    我们为什么需要构建工具
    vue-router keep-alive
    Es6模块化
    AMD-require.js
    CommonJs
    OJ
    算法
    flex属性 flex-grow、flex-shrink、flex-basic
    js过滤数组中的空值
  • 原文地址:https://www.cnblogs.com/LexMoon/p/LexBerBer.html
Copyright © 2020-2023  润新知