私はアンドロイドが初めてです。OAuth2 を使用して単純なクライアント/サーバー接続を実装しようとしましたが、プロセスは次のとおりです。
ClientCredentials (client_id と client_secret) を使用して OAuth2 サーバーに接続し、アクセス トークンを取得します。
アクセストークンを使用してユーザーを登録します。
したがって、2 ラウンドの接続が必要です。最初のラウンドは常に問題なく、http 接続の 2 番目のラウンドは常に EOFException を返すので、かなり混乱します。関連するコードは次のとおりです (新しいスレッドで実行されるプロシージャに含まれています)。
NetHttpTransport transport = new NetHttpTransport();
JacksonFactory factory = new JacksonFactory();
//use http for testing only, will use https for deployed environment
GenericUrl url = new GenericUrl("http://192.168.x.x/oauth2/token");
//client_id & client_secret
BasicAuthentication auth = new BasicAuthentication("abc","abc");
ClientCredentialsTokenRequest token =
new ClientCredentialsTokenRequest(transport, factory, url)
.setClientAuthentication(auth);
TokenResponse response = token.execute();
//ok, i can get access token in response without problem
Credential credential =
new Credential(BearerToken.authorizationHeaderAccessMethod())
.setFromTokenResponse(response);
//note that I reuse the transport, but using a new transport2 doesn't help
HttpRequestFactory rf = trasport.createRequestFactory(credential);
GenericData data = new GenericData();
data.put("Username",phoneText.getText().toString());
data.put("Password", passwordText.getText().toString());
JsonHttpContent content = new JsonHttpContent(factory, data);
GenericUrl genericUrl=new GenericUrl("http://192.168.x.x/users");
HttpRequest request = rf.buildPostRequest(genericUrl, content);
//the following will always return EOF exception
HttpResponse response=request.execute();
なぜそれが起こるのか、それを解決する方法を教えてもらえますか?
Google http/oauth2 API を正しく使用していますか?
どうもありがとうございました。
よろしくお願いします、