zoukankan      html  css  js  c++  java
  • java实现HTTP Basic认证

    这两天一直在调试EMQ的API,通过HTTP的GET请求,可以查询到订阅列表信息,在浏览器中测试时,需要输入用户名和密码,然后才能显示出结果,输错或者不输入会返回401错误。

    通过浏览器输入用户名和密码没有问题,但是如果使用Java通过后台发送HTTP请求,在什么地方输入用户名和密码呢?

    经过大量的查找资料发现,EMQ的API调用采用了Basic认证。这块怪自己知识太浅,有经验的人应该一眼就能看出来。

    这里对Basic认证的原理 就不说了,网上有很多资料。

    采用Basic认证时,需要在header中设置Authorization字段。代码如下:

    public static String doGet(String urlStr){
            try{
                URL url = new URL(urlStr);
                HttpURLConnection conn = (HttpURLConnection) url.openConnection();
                conn.setRequestMethod("GET");
                conn.setDoInput(true);
                conn.setDoOutput(true);
                
                String authString = "admin:public";
                byte[] authEncBytes = Base64.encodeBase64(authString.getBytes());
                String authStringEnc = new String(authEncBytes);
                conn.setRequestProperty("Authorization", "Basic " + authStringEnc);  //设置Authoriization字段
    
                conn.connect();
                
                int status = conn.getResponseCode();
                
                System.out.println(status);
                
                if(status == 200){
                    BufferedReader reader = new BufferedReader(new InputStreamReader(conn.getInputStream()));
                    String str = "";
                    StringBuffer sb = new StringBuffer();
                    while((str=reader.readLine()) != null){
                        sb.append(str);
                    }
                    return sb.toString();
                }
                System.out.println("请求emq服务失败");
            }catch(Exception e){
                e.printStackTrace();
            }
            return "error";
        }
  • 相关阅读:
    vue.js生成纵向拓扑图
    vue.js生成横向拓扑图
    Vue.js中使用wangEditor富文本编辑器
    文件上传与下载,PDF与Excel的操作
    Element布局实现日历布局
    golang时间转换
    iView学习笔记(四):Form表单操作
    iView学习笔记(三):表格搜索,过滤及隐藏列操作
    iView学习笔记(二):Table行编辑操作
    iView学习笔记(一):Table基本操作(包含前后端示例代码)
  • 原文地址:https://www.cnblogs.com/zhangyongJava/p/9706527.html
Copyright © 2011-2022 走看看