Я пытаюсь реализовать неявный грант OAuth 2.0 из клиентского приложения Java для настольных ПК с использованием SkyDrive REST API. Я использую следующий код:
Desktop.getDesktop().browse(new URL(st.toString()).toURI());
JOptionPane.showMessageDialog(null, "Press ok to continue once you have authenticated.");
мой код открывает веб-браузер и просит пользователей войти в систему, а затем SkyDrive отправляет токен доступа на URL-адрес браузера в следующей форме:
https://login.live.com/oauth20_desktop.srf?lc=1033#access_token=EwAwAq1DBAAUlbRW.....
Что я хочу сделать, так это прочитать этот токен доступа из моей java-программы. Я попытался прочитать httpconnection с консоли:
HttpURLConnection con = (HttpURLConnection) url.openConnection();
BufferedReader reader = new BufferedReader( new InputStreamReader(url.openStream()));
while(reader.readLine()!=null){
System.out.println(reader.readLine());
но кажется, что java httpurlconnection не обрабатывает ответ javascript. Он отвечает:
<html dir="..... Windows Live ID requires JavaScript to sign in. This web browser either does not support JavaScript, or scripts are being blocked......<body onload="evt_LoginHostMobile_onload(event);">
Итак, есть ли способ получить токен доступа непосредственно из java?