AndroidでApacheHttpAsyncClient(この投稿を書いている時点で最新のバージョン4.0-beta1)を使用してREST通信を実装しようとしています。
私の問題は、フレームワーク内からのMethodNotFoundエラーが原因で、リクエストを取得できないことです。
詳細なスタックトレースは次のとおりです(提示された行の後、次の行は私自身のコードからのものです):
java.lang.NoSuchMethodError: org.apache.http.client.utils.URIUtils.extractHost
at org.apache.http.impl.nio.client.AbstractHttpAsyncClient.determineTarget(AbstractHttpAsyncClient.java:594)
at org.apache.http.impl.nio.client.AbstractHttpAsyncClient.execute(AbstractHttpAsyncClient.java:578)
at org.apache.http.impl.nio.client.AbstractHttpAsyncClient.execute(AbstractHttpAsyncClient.java:569)
私がしたことは次のとおりです。
private static final String SERVER_SCHEME = "http";
private static final String SERVER_HOST = "localhost";
private static final int SERVER_PORT = 3000;
private static final String SERVER_BASE_PATH = "/api/v1";
private static final String PATH_LOGIN = "/login";
private DefaultHttpAsyncClient http_client;
public void test(String email, String password, ConnectionManagerCallback callback) {
this.http_client = new DefaultHttpAsyncClient();
this.http_client.start();
this.http_client.getCredentialsProvider().setCredentials(new AuthScope(SERVER_HOST, SERVER_PORT), new UsernamePasswordCredentials(email, password));
HttpPost request = new HttpPost(SERVER_SCHEME + "://" + SERVER_HOST + ":" + SERVER_PORT + SERVER_BASE_PATH + PATH_LOGIN);
this.http_client.execute(request, new Callback(REQUEST_LOGIN, callback));
}
例のために、例外処理を削除しました。問題は、上記の例外が発生することです。ベータ版なので、HttpPostに別のコンストラクターを使用することを考えました。しかし、コンストラクターにURIオブジェクトを指定しても、extractHostメソッドを呼び出そうとしてクラッシュします。
誰かがこれについて私を助けてくれますか?ちなみにJARを追加しただけで、ライブラリを自分でコンパイルしませんでした。