0

我正在尝试从 URL 获取响应代码:

    final SSLContext sslContext = SSLContext.getInstance( "SSL" );
    Utils.noCerts(sslContext);
    SSLSocketFactory socketFactory = sslContext.getSocketFactory();

    URL url = new URL("https://abc.def.efg:1234/hij/klm.svc/nop");
    HttpsURLConnection urlConnection = (HttpsURLConnection) url.openConnection();
    urlConnection.setRequestMethod("HEAD");
    urlConnection.setSSLSocketFactory(socketFactory);

    int responseCode = urlConnection.getResponseCode();
    System.out.println(responseCode);

我已经在我的网络中使用多个 URL 进行了尝试。对于某些人来说,它工作正常。它完美地告诉我响应代码。但是,对于其他链接,它给了我一个 401(即使我可以通过 Chrome 访问它)并给我以下错误:

2013-12-09 09:21:40.590 java[32438:1203] Unable to load realm info from SCDynamicStore

我认为这可能是身份验证问题。因此,在创建“urlConnection”之后,我还添加了以下代码:

    String userPassword = "user:password";  //hardcoded for now
    String encoding = new BASE64Encoder().encode((userPassword).getBytes());
    urlConnection.setRequestProperty("Authorization", "Basic" + encoding);

但是,这仍然给了我一个 401 并给了我与上面相同的错误消息。

关于可能导致此问题的任何想法或信息都会很棒。提前致谢。

4

1 回答 1

1

看看Basic Access Authentication header 应该怎么看。您在没有空间的情况下创建它,因此服务器无法验证它。

如果没有空间,它将如下所示:

Authorization: BasicQWxhZGRpbjpvcGVuIHNlc2FtZQ==
于 2013-12-09T14:50:29.283 回答