import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
public class HttpUtil {
private static final int MAX_THREADS = 10;
public static String[] get(String url, int count) throws InterruptedException {
String[] results = new String[count];
Thread[] threads = new Thread[MAX_THREADS];
for (int i = 0; i < MAX_THREADS; i++) {
int start = i * (count / MAX_THREADS);
int end = (i == MAX_THREADS - 1) ? count : (i + 1) * (count / MAX_THREADS);
threads[i] = new Thread(new HttpTask(url, start, end, results));
threads[i].start();
}
for (int i = 0; i < MAX_THREADS; i++) {
threads[i].join();
}
return results;
}
static class HttpTask implements Runnable {
private String url;
private int start;
private int end;
private String[] results;
public HttpTask(String url, int start, int end, String[] results) {
this.url = url;
this.start = start;
this.end = end;
this.results = results;
}
public void run() {
for (int i = start; i < end; i++) {
HttpURLConnection conn = null;
StringBuilder content = new StringBuilder();
try {
URL url = new URL(this.url);
conn = (HttpURLConnection) url.openConnection();
BufferedReader in = new BufferedReader(new InputStreamReader(conn.getInputStream()));
String line;
while ((line = in.readLine()) != null) {
content.append(line);
}
in.close();
} catch (IOException e) {
e.printStackTrace();
} finally {
if (conn != null) {
conn.disconnect();
}
}
results[i] = content.toString();
}
}
}
}