http://news.mynavi.jp/column/tool/042/index.html 上記サイトで解説されているHttpの非同期通信サンプルをEclipse上で試して見ました。 しかし、動かしてみたところコンソール上には何も表示されませんでした。 イベントハンドらで通信処理が完了したことを検出するするはずなのサンプルなのですが 何が原因がわかりますでしょうか。 下記がそのサンプルです。 【AsyncHttpSampleHandler.java】 import java.io.IOException; import com.ning.http.client.AsyncHttpClient; public class AsyncHttpSampleHandler { public static void main(String[] args) { AsyncHttpSampleHandler asyncHttp = new AsyncHttpSampleHandler(); String[] urls = {"http://www.google.co.jp", "http://www.ongs.co.jp", "http://www.mycom.co.jp"}; asyncHttp.connectWithHandler(urls); } public void connectWithHandler(String[] urls) { // AsyncHttpClientオブジェクトを生成 AsyncHttpClient httpClient = new AsyncHttpClient(); for (String url: urls) { try { // GETリクエストを送信 httpClient.prepareGet(url).execute(new MyAsyncCompletionHandler()); } catch (IOException ex) { ex.printStackTrace(); } } } } 【MyAsyncCompletionHandler.java】 import java.net.MalformedURLException; import com.ning.http.client.AsyncCompletionHandler; import com.ning.http.client.Response; class MyAsyncCompletionHandler extends AsyncCompletionHandler { @Override public Response onCompleted(Response response) { try { // レスポンスの取得が完了したら、URLを表示 System.out.println(response.getUri()); } catch (MalformedURLException ex) { ex.printStackTrace(); } return response; } @Override public void onThrowable(Throwable t) { t.printStackTrace(); } }
↧