专栏首页大大的微笑写一个BASIC认证的https协议

写一个BASIC认证的https协议

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

   /**
     * 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;
    }
    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)); 
	        
	    }  

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Condition控制线程通信:java三个线程循环打印ABC

    private Lock lock = new ReentrantLock(); private Condition c1 = lock.newConditi...

    用户1215919
  • java使用mina和websocket通信

    这里以mina整合springMVC为例: //springMVC的配置: <!-- mina --> <bean class="org.spring...

    用户1215919
  • 观察者模式详解

    观察者模式是众多软件设计模式中的一种,又称发布订阅模式.被观察的对象发生了变化,观察者对象们可以第一时间收到通知, 并作出相应的处理,例如作为一家餐馆的会员...

    用户1215919
  • ASP.NET MVC Preview生命周期分析

    做ASP.NET WebForm开发都知道,ASP.NET有复杂的生命周期,学习ASP.NET MVC就要深入理解它的生命周期。今天从CodePlex上下载了A...

    张善友
  • Flutter TextStyle参数解析关于学习

    吴老师
  • Java IO结构各种流详解

    花了两天时间研究了一下Java IO的流,对于各种流,加深了一下理解 首先看我做的思维导图 ? 文件流 public class FileIO { ...

    汤高
  • 企点3.0 | 电话客服五大功能新鲜解锁!快来体验吧

    ? 本次企点客服-电话客服3.0版本 共计更新/优化了五大功能点 快来看看新功能在哪里/怎么用! 1.自定义WPA页面的数据上报 | 2.电话技能组配置优化...

    腾讯企点
  • Vue+Django2.0 REST framework 打造前后端分离的生鲜电商项目(四)restful和前端源码介绍

    玩蛇的胖纸
  • 深入Proxy底层源码——实现自己的JDK动态代理

    2.使用jdk动态代理获取代理类对象(JDK自动生成代理类) $Proxy0.class,使用反编译工具

    须臾之余
  • AsyncTask解析

    需要进度更新: onPreExecute() --> doInBackground() --> publishProgress() --> onProgress...

    用户1205080

扫码关注云+社区

领取腾讯云代金券