前提・実現したいこと
JavaのURLクラスで認証のあるURLを呼び出したいです。
試したこと
Java の URLConnection で基本認証を行う際のハマりどころ
と同じような問題が発生したため、上記のサイトを参考に以下のソースを作成した。
public static void main() { // 認証確認 String strURL = "https://sample/test"; URLConnection connection = null; try { URL url = new URL(strURL); final String userPassword = "user" + ":" + "pass"; String encodeAuthorization = Base64.getEncoder().encodeToString(userPassword.getBytes()); connection = url.openConnection(); connection.setRequestProperty("Authorization", "Basic " + encodeAuthorization); connection.connect(); InputStream inStream = connection.getInputStream(); BufferedReader input = new BufferedReader(new InputStreamReader(inStream)); String line = ""; while ((line = input.readLine()) != null) { System.out.println(line); } } catch (Exception e) { System.out.println(e.toString()); } finally { if(connection != null) { connection = null; } } }
発生している問題・エラーメッセージ
java.io.IOException: Server returned HTTP response code: 401 for URL:
というメッセージが認証処理と思われるところを追加しても表示されてしまった。
401なので認証がうまくいってないと思うのですが
connection.setRequestPropertyのところを追記しても書く前と変わらず同じエラーが表示されてしまいました。
どこが悪いかわかる方、またはほかに良い方法を知っている方がいましたら教えていただきたいです。
補足情報(FW/ツールのバージョンなど)
Windows
Java1.8
Tomcat9
回答1件
あなたの回答
tips
プレビュー