java - 授权 header 在基本身份验证 JAVA 中不起作用

标签 java http basic-authentication

我正在尝试制作一个通过基本身份验证连接到服务器的程序,但是当我尝试设置“授权”HTTP header 时出现问题,因为当我尝试显示插入的 header 时,其中没有“授权” header 我的 HTTP 请求,有人知道为什么吗? 这是我的代码:

import java.io.IOException;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;

import javax.xml.bind.DatatypeConverter;

public class Esse3Connection {

    public static void main(String[] args) {
        try {
            String webPage = "http://192.168.1.1:80";
            String name = "admin";
            String password = "admin";

            String authString = name + ":" + password;
            System.out.println("auth string: " + authString);
            String authEncBytes = DatatypeConverter.printBase64Binary(authString.getBytes());
            String authStringEnc = new String(authEncBytes);
            System.out.println("Base64 encoded auth string: " + authStringEnc);


            URL url = new URL(webPage);
            HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection();
            urlConnection.setRequestMethod("GET");
            urlConnection.setRequestProperty("Authorization", "Basic " + authStringEnc);
            urlConnection.connect();

            System.out.println(urlConnection.getRequestProperty("Authorization"));
        } catch (MalformedURLException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

}

最佳答案

尝试替换:

        byte[] encoding = Base64.encodeBase64(authString.getBytes());
        String authStringEnc = new String(encoding);

import org.apache.commons.codec.binary.Base64;

关于java - 授权 header 在基本身份验证 JAVA 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27023503/

相关文章:

java - Thread::yield 与 Thread::onSpinWait

java - WebService java 中的哈希表更新

java - 如何根据窗口大小缩放对象?

http - 如何使 HTTP 请求在 Flutter web 中工作?

json - 如何在 iOS9 上做 http 基本认证?

javascript - 在 phonegap 应用程序中加载基本的身份验证安全图像

java - 如何禁用或突出显示 JCalendar 中的日期

http - 从GWT开始,使用RPC调用重要吗?

java.net.URI 在主机部分的特殊字符上阻塞

rest - 我应该通过 HTTP Header 还是 Post body 作为 JSON 将凭据传递给 REST Api?