アンドロイドアプリから私のスプリングレストサービスに接続しようとしています。私のコードは動作しません。私は、次のチュートリアルから学ぶ: http://websystique.com/spring-security/secure-spring-rest-api-using-oauth2/HttpUrlConnection - アンドロイドアプリ - 春のWebサービスでoauth2認証
、私はこの点をやろう:
は「/のOAuth /トークンにHTTP POSTを使用して、トークンのために、[アクセス+リフレッシュ]を掲載し、grant_type =パスワード、およびリソースで POST http://localhost:8080/SpringSecurityOAuth2Example/oauth/token?grant_type=password&username=bill&password=abc123 "
私はチュートリアルのようにではなく、HttpURLConnectionを使ってやりたかったのです。適切な要求をするためのパラメータの見方は? 私は自分の携帯電話でそれをシミュレートし、それは無線LANでローカルネットワークとの接続を持っています。
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)
私は郵便配達のアプリでサービスをテストして動作します。だから、この欠陥は私のアンドロイドアプリにあります。