Я пытаюсь подключиться к службе весеннего отдыха с помощью приложения для Android. Мой код не работает. Я узнаю из следующего урока: http://websystique.com/spring-security/secure-spring-rest-api-using-oauth2/HttpUrlConnection - приложение для Android - oauth2 авторизация с помощью веб-службы весны
и я пытаюсь сделать эту точку:
«Ask для жетонов [доступа + обновить] с помощью HTTP POST на/OAuth/маркер, с grant_type = пароль и ресурс владельцы полномочия в качестве REQ-Params. Кроме того, отправить учетные данные клиента в заголовке Authorization. POST http://localhost:8080/SpringSecurityOAuth2Example/oauth/token?grant_type=password&username=bill&password=abc123 "
Я пытался сделать это по-другому, не так, как в учебнике, но с использованием HttpURLConnection. Как следует искать параметры для запроса соответствующего запроса? Я имитирую его на своем телефоне, и он имеет соединение с локальной сетью через Wi-Fi.
try {
String plainClientCredentials="my-trusted-client:secret";
String base64ClientCredentials = new String(Base64.encodeBase64(plainClientCredentials.getBytes()));
URL urlObj = new URL("http://192.168.1.150:8080/Web_Maxim_Manager/oauth/token");
HttpURLConnection urlConn = (HttpURLConnection) urlObj.openConnection();
urlConn.setDoOutput(true);
urlConn.setDoInput(true);
urlConn.setRequestProperty("Content-Type", "application/json");
urlConn.setRequestProperty("Accept", "application/json");
urlConn.setRequestMethod("POST");
urlConn.setRequestProperty("grant_type", "password");
urlConn.setRequestProperty("username", "bill");
urlConn.setRequestProperty("password", "abc123");
urlConn.setRequestProperty("Authorization", "Basic "+base64ClientCredentials);
urlConn.connect();
String response = urlConn.getResponseMessage();
userName.setText(response);
} catch (Exception e) {
userName.setText("uuuu");
e.printStackTrace();
}
W/System.err: java.net.SocketException: socket failed: EACCES (Permission denied)
W/System.err: at libcore.io.IoBridge.socket(IoBridge.java:623)
W/System.err: at java.net.PlainSocketImpl.create(PlainSocketImpl.java:198)
W/System.err: at java.net.Socket.checkOpenAndCreate(Socket.java:687)
W/System.err: at java.net.Socket.setSoTimeout(Socket.java:541)
W/System.err: at com.android.okhttp.Connection.connect(Connection.java:1179)
W/System.err: at com.android.okhttp.internal.http.HttpEngine.connect(HttpEngine.java:392)
W/System.err: at com.android.okhttp.internal.http.HttpEngine.sendRequest(HttpEngine.java:295)
W/System.err: at com.android.okhttp.internal.http.HttpURLConnectionImpl.execute(HttpURLConnectionImpl.java:373)
W/System.err: at com.android.okhttp.internal.http.HttpURLConnectionImpl.connect(HttpURLConnectionImpl.java:106)
W/System.err: at runwithme.android.maxim.com.myapplication.activities.MainActivity.onCreate(MainActivity.java:43)
Я тестировал сервис с приложениями postman, и он работает. Итак, ошибка в моем приложении для Android.