学而实习之 不亦乐乎

httpUrlConnection在请求头 (Header)中添加 Authorization 身份认证信息

2022-08-05 08:07:07

话不多说,看代码!

import org.apache.commons.codec.binary.Base64;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
import sun.misc.BASE64Encoder;

import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;

@RestController
public class TestController {
    /**
     * BASE64编码
     */
    public  String encryptBASE64(String username,String password) {
        byte[] key = (username+":"+password).getBytes();
        return  new String(Base64.encodeBase64(key));
    }

    @GetMapping("/demo")
    public void test(){
        String account = "username";
        String passowrd = "pwd";
        String authorization = "Basic "+(encryptBASE64(account,passowrd));
        String http = "http://ip:port/hello";
        /** 网络的url地址 */
        URL url = null;
        HttpURLConnection httpUrlConnection = null ;
        InputStream inputStream = null;
        BufferedReader in = null;
        String str;
        try {
            url = new URL(http);
            httpUrlConnection = (HttpURLConnection) url.openConnection();
            httpUrlConnection.setConnectTimeout(1000);
            httpUrlConnection.setReadTimeout(1000);
            System.out.println(authorization);
            httpUrlConnection.setRequestProperty("authorization","Basic "+(encryptBASE64(account,passowrd)));
            inputStream = httpUrlConnection.getInputStream();
            in = new BufferedReader(new InputStreamReader(inputStream, "UTF-8"));
            while ((str = in.readLine()) != null) {
                System.out.println("》》》》:"+str);
            }
        } catch (Exception e) {
           e.printStackTrace();
        }
    }
}