【发布时间】:2011-10-16 03:44:07
【问题描述】:
这似乎是一个奇怪的问题,但我试图在几秒钟的时间间隔内发送尽可能多的 HTTP POST 请求。
我想知道是否有人有任何建议,因为我目前每秒只能实现大约 6-9 个请求,这似乎相当低。我的代码如下 - 我使用的是 Apache Commons HTTP 库:
import org.apache.commons.httpclient.HttpClient;
import org.apache.commons.httpclient.methods.GetMethod;
import org.apache.commons.httpclient.methods.PostMethod;
long start = System.currentTimeMillis();
long end = start + 4000;
int count = 0;
while (System.currentTimeMillis() < end)
{
count++;
httpClient.executeMethod(method);
}
System.out.println((double)count/4 + " reqs / sec");
post 方法预先创建一次:
String body= getBodyString();
PostMethod method = new PostMethod(Url);
method.setRequestEntity( new StringRequestEntity(body));
method.setRequestHeader(...etc)
我猜有某种固有的顺序行为,即 httpclient 正在等待响应?就我而言,我不关心响应,所以大概有一种方法可以提高通话率。也许我可以在发送请求的同时准备下一个请求等。还有一个更高效、更快速的库吗?
我是这种代码的新手,所以如果这个问题没有多大意义,我深表歉意。
【问题讨论】:
-
你的标题确实让人觉得这是出于恶意目的......
-
我可以向您保证,它并非针对任何恶意内容。