前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >写一个BASIC认证的https协议

写一个BASIC认证的https协议

作者头像
用户1215919
发布2018-02-27 10:25:04
7220
发布2018-02-27 10:25:04
举报
文章被收录于专栏:大大的微笑大大的微笑

仅供参考,转载请注明出处,谢谢

代码语言:javascript
复制
   /**
     * BASIC认证的https
     * @param urlStr https请求的地址
     * @return
     */
    public static String get(String urlStr) {
        log.info("url-->" + urlStr);
        String rs = "";
        StringBuffer buffer = new StringBuffer();
        DefaultHttpClient client =null;
        HttpGet get = new HttpGet(urlStr);
        InputStream instream = null;
        BufferedReader in = null;
        HttpResponse response;
        try {
            //处理HTTPS请求
            client=  new SSLClient();
            //BASIC认证
            client.getCredentialsProvider().setCredentials(AuthScope.ANY,new 
            UsernamePasswordCredentials("用户名","密码"));
            //获取响应
            response =  client.execute(get);
            instream = response.getEntity().getContent();
            in = new BufferedReader(new InputStreamReader(instream, "utf-8"));
            String line = "";
            while ((line = in.readLine()) != null) {
                buffer.append(line);
            }
            rs = buffer.toString();
            System.out.println(rs);
        } catch (Exception e) {
            e.printStackTrace();
           
        }finally{
           //释放资源,自己处理一下,不在赘述
        }
        return rs;
    }
代码语言:javascript
复制
    public class SSLClient extends DefaultHttpClient{  
        //证书处理
        private static Logger log = Logger.getLogger(getClass().class);
	    public SSLClient() throws Exception{  
	        super();  
	        SSLContext ctx = SSLContext.getInstance("TLS");  
	        X509TrustManager tm = new X509TrustManager() {  
	                @Override  
	                public void checkClientTrusted(X509Certificate[] chain,  
	                        String authType) throws CertificateException {  
	                }  
	                @Override  
	                public void checkServerTrusted(X509Certificate[] chain,  
	                        String authType) throws CertificateException {  
	                }  
	                @Override  
	                public X509Certificate[] getAcceptedIssuers() {  
	                    return null;  
	                }  
	        };
	        log.info("---");
	        ctx.init(null, new TrustManager[]{tm}, null);  
	        SSLSocketFactory ssf = new 
            SSLSocketFactory(ctx,SSLSocketFactory.ALLOW_ALL_HOSTNAME_VERIFIER);  
	        ClientConnectionManager ccm = this.getConnectionManager();  
	        SchemeRegistry sr = ccm.getSchemeRegistry();  
	        sr.register(new Scheme("https", 443, ssf)); 
	        
	    }  
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档