gpt4 book ai didi

java - 并行点击一个 url n 次

转载 作者:行者123 更新时间:2023-11-29 05:46:01 24 4
gpt4 key购买 nike

我想并行点击一个 url n 次。我用谷歌搜索并找到了 this网址。我试图根据我的要求进行更改(点击 url n 次并查看每个 url 的响应),但没有成功。我添加了以下代码来执行请求并在上面的链接中的 Task 类构造函数中获取响应,但是这个只按顺序工作。

DefaultHttpClient client = new DefaultHttpClient();
HttpPost method = new HttpPost(aURL);
try {
HttpResponse httpResponse=client.execute(method);
StringBuffer buffer = new StringBuffer();
BufferedReader reader = new BufferedReader(new InputStreamReader(httpResponse.getEntity().getContent()));
String dataLine = null;
while((dataLine = reader.readLine()) != null){
buffer.append(dataLine);
}
String responseMsg = buffer.toString();
System.out.println(responseMsg);

欢迎任何帮助。

最佳答案

您可以使用线程数等于您要发送的并行请求数的线程池。将您的逻辑(创建和发送请求)包装到可运行的任务中,并使用循环创建和提交任务实例。

int numOfThreads = ... <num of parallel requests to generate>
ExecutorService es = Executors.newFixedThreadPool(numOfThreads);
for (int i = 0; i < numOfThreads; i++) {
es.submit(new Task());
}

您的任务可能是这样的。您可以在 run() 实现中做任何您必须做的事情。此外,您可以即兴使用同步器立即关闭线程。

class Task implements Runnable{
@Override
public void run() {
DefaultHttpClient client = new DefaultHttpClient();
HttpPost method = new HttpPost(aURL);
try {
HttpResponse httpResponse=client.execute(method);
StringBuffer buffer = new StringBuffer();
BufferedReader reader = new BufferedReader(new InputStreamReader(httpResponse.getEntity().getContent()));
String dataLine = null;
while((dataLine = reader.readLine()) != null){
buffer.append(dataLine);
}
String responseMsg = buffer.toString();
System.out.println(responseMsg);
}
}
}

关于java - 并行点击一个 url n 次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15832323/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com