AndroidプロジェクトでOAuth2を使用しています。アイデアは、ThreadSafeClientConnManagerで使用されるシングルトンHttpClientを使用することです。
サーバーへの通常のリクエストでは、Authorizationヘッダーを作成して送信します。ヘッダーは、サーバーから受信した値から構成されます。これは正常に機能します。ただし、15分ごとに、ヘッダーを作成するためにサーバーから新しい値を取得する必要があります。これらの値を受け取るには、そのようにクレデンシャルを設定する必要があります。
client.getCredentialsProvider().setCredentials(
new AuthScope(AuthScope.ANY_HOST, AuthScope.ANY_PORT),
new UsernamePasswordCredentials(creds.clientId, creds.clientSecret));
これを機能させるには、新しいDefaultHttpClientを設定する必要があります。元のシングルトンhttpclientを使用すると、いくつかのエラーが発生します。私の質問は..この1つのリクエストでのみ使用されるようにクレデンシャルを設定することは可能ですか?
AuthScopeがあることに気づきました。ホストとポートはこれには適していませんが、おそらくレルムは適していますか?レルムとは何か、またはその使用方法を教えてくれるものは何も見つかりません。
06-05 10:12:55.969:W / System.err(23843):org.apache.http.NoHttpResponseException:ターゲットサーバーが応答できませんでした06-05 10:12:55.969:W / System.err(23843): org.apache.http.impl.conn.DefaultResponseParser.parseHead(DefaultResponseParser.java:85)06-05 10:12:55.969:W / System.err(23843):org.apache.http.impl.ioで。 AbstractMessageParser.parse(AbstractMessageParser.java:174)06-05 10:12:55.969:W / System.err(23843):org.apache.http.impl.AbstractHttpClientConnection.receiveResponseHeader(AbstractHttpClientConnection.java:179)06-05 10:12:55.969:W / System.err(23843):org.apache.http.impl.conn.DefaultClientConnection.receiveResponseHeader(DefaultClientConnection.java:235)06-05 10:12:55.969:W / System.err (23843):org.apache.http.impl.conn.AbstractClientConnAdapter.receiveResponseHeader(AbstractClientConnAdapter.java:259)06-05 10:12:55.975:W / System.err(23843):org.apache.http.protocol.HttpRequestExecutor.doReceiveResponse(HttpRequestExecutor.java:279)06-05 10:12:55.975:W / System.err(23843):org.apache.http.protocol.HttpRequestExecutor.execute(HttpRequestExecutor.java:121)06-05 10:12:55.975:W / System.err(23843):org.apache.http .impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:504)06-05 10:12:55.975:W / System.err(23843):org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient。 java:555)06-05 10:12:55.975:W / System.err(23843):org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:487)06-05 10:12: 55.975:W / System.err(23843):org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:465)err(23843):org.apache.http.protocol.HttpRequestExecutor.doReceiveResponse(HttpRequestExecutor.java:279)06-05 10:12:55.975:W / System.err(23843):org.apache.http.protocol .HttpRequestExecutor.execute(HttpRequestExecutor.java:121)06-05 10:12:55.975:W / System.err(23843):org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:504) 06-05 10:12:55.975:W / System.err(23843):org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:555)06-05 10:12:55.975:W / System.err(23843):org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:487)06-05 10:12:55.975:W / System.err(23843):org.apacheで.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:465)err(23843):org.apache.http.protocol.HttpRequestExecutor.doReceiveResponse(HttpRequestExecutor.java:279)06-05 10:12:55.975:W / System.err(23843):org.apache.http.protocol .HttpRequestExecutor.execute(HttpRequestExecutor.java:121)06-05 10:12:55.975:W / System.err(23843):org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:504) 06-05 10:12:55.975:W / System.err(23843):org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:555)06-05 10:12:55.975:W / System.err(23843):org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:487)06-05 10:12:55.975:W / System.err(23843):org.apacheで.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:465)doReceiveResponse(HttpRequestExecutor.java:279)06-05 10:12:55.975:W / System.err(23843):org.apache.http.protocol.HttpRequestExecutor.execute(HttpRequestExecutor.java:121)06-05 10: 12:55.975:W / System.err(23843):org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:504)06-05 10:12:55.975:W / System.err(23843) ):org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:555)06-05 10:12:55.975:W / System.err(23843):org.apache.http.impl。 client.AbstractHttpClient.execute(AbstractHttpClient.java:487)06-05 10:12:55.975:W / System.err(23843):org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:465) )。doReceiveResponse(HttpRequestExecutor.java:279)06-05 10:12:55.975:W / System.err(23843):org.apache.http.protocol.HttpRequestExecutor.execute(HttpRequestExecutor.java:121)06-05 10: 12:55.975:W / System.err(23843):org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:504)06-05 10:12:55.975:W / System.err(23843) ):org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:555)06-05 10:12:55.975:W / System.err(23843):org.apache.http.impl。 client.AbstractHttpClient.execute(AbstractHttpClient.java:487)06-05 10:12:55.975:W / System.err(23843):org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:465) )。execute(HttpRequestExecutor.java:121)06-05 10:12:55.975:W / System.err(23843):at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:504)06-05 10:12:55.975:W / System.err(23843):org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:555)06-05 10:12:55.975:W / System.err (23843):org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:487)06-05 10:12:55.975:W / System.err(23843):org.apache.httpで。 impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:465)execute(HttpRequestExecutor.java:121)06-05 10:12:55.975:W / System.err(23843):at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:504)06-05 10:12:55.975:W / System.err(23843):org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:555)06-05 10:12:55.975:W / System.err (23843):org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:487)06-05 10:12:55.975:W / System.err(23843):org.apache.httpで。 impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:465)java:555)06-05 10:12:55.975:W / System.err(23843):org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:487)06-05 10:12: 55.975:W / System.err(23843):org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:465)java:555)06-05 10:12:55.975:W / System.err(23843):org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:487)06-05 10:12: 55.975:W / System.err(23843):org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:465)
それで、さらにテストした後、私は問題がどこにあるかを見つけました。
そのようにプールされた接続マネージャーを構成したい
SchemeRegistry schemeRegistry = new SchemeRegistry();
schemeRegistry.register(
new Scheme("http", PlainSocketFactory.getSocketFactory(), 80));
schemeRegistry.register(
new Scheme("https", PlainSocketFactory.getSocketFactory(), 443));
ClientConnectionManager conManager = new ThreadSafeClientConnManager(new BasicHttpParams(), schemeRegistry);
DefaultHttpClient httpClient = new DefaultHttpClient(conManager, new BasicHttpParams());
しかし、このように構成すると、上記のエラーが発生します。私がそのように通常のデフォルトのhttpclientを使用する場合
DefaultHttpClient httpClient = new DefaultHttpClient();
その後、正常に動作します。何か案は?