Java异步下载http页面演示代码
package in.datashow.sover;
import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import org.apache.commons.io.FileUtils;
import com.ning.http.client.AsyncCompletionHandler;
import com.ning.http.client.AsyncHttpClient;
import com.ning.http.client.ListenableFuture;
import com.ning.http.client.Response;
/**
* AsyncHttpClient 使用测试
* <p>datashow.in</p>
* @author yangyan
*
*/
public class HttpTest {
public static long a = 0;
public static int b = 100;
public static int c = 0;
public static void main(String[] args) {
AsyncHttpClient client = new AsyncHttpClient();
final long s = System.currentTimeMillis();
List<ListenableFuture<String>> list = new ArrayList<ListenableFuture<String>>();
try {
for (int i = 0; i < b; i++) {
final ListenableFuture<String> f = client.prepareGet(
"http://www.oschina.net").execute(
new AsyncCompletionHandler<String>() {
@Override
public String onCompleted(Response response)
throws Exception {
String content = response.getResponseBody();
FileUtils.writeStringToFile(new File(
"d:\\temp\\" + c++ + "_oschina.html"), content);
// System.out.println(content);
a = System.currentTimeMillis() - s;
b--;
return content;
}
});
list.add(f);
// System.out.println(a);
}
} catch (IOException e) {
e.printStackTrace();
}
while (true) {
try {
Thread.sleep(3000);
if (b <= 0) {
System.out.println(b);
System.out.println("100 此连接及下载用时:" + a + "ms");
break;
}
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}
