首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >每秒只能发送10个HTTP POST请求?

每秒只能发送10个HTTP POST请求?
EN

Stack Overflow用户
提问于 2011-10-16 02:37:57
回答 2查看 1.7K关注 0票数 1

这似乎是一个奇怪的问题,但我正在尝试在几秒钟的时间间隔内发送尽可能多的HTTP POST请求。

我想知道是否有人有任何建议,因为我目前每秒只能达到大约6-9个请求,这似乎相当低。我的代码如下-我使用的是Apache Commons HTTP库:

代码语言:javascript
运行
复制
  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方法预先创建一次:

代码语言:javascript
运行
复制
 String body= getBodyString();
 PostMethod method = new PostMethod(Url);
 method.setRequestEntity( new StringRequestEntity(body));
 method.setRequestHeader(...etc)    

我猜是不是有某种固有的顺序行为,httpclient在等待响应?在我的例子中,我不关心响应,所以大概有一种方法可以提高呼叫率。也许我可以在发送请求的同时准备下一个请求,等等,还有更高效和更快的库吗?

我是第一次接触这种类型的代码,所以如果这个问题没有太多意义,我向您道歉。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-10-16 02:41:39

使用线程,卢克!

您的客户端受到服务器平均响应时间的限制。如果服务器在100毫秒内响应,则每秒不会超过10个请求。

但是,如果您同时发送10个请求,并且服务器能够在相同的响应时间内同时处理它们,那么您将立即达到100个请求/秒。

如果您打算对应用程序进行压力测试,有一些很好的免费工具,比如JMeterab。如果你真的在给别人的网站发垃圾邮件:你真丢脸。他们的网络基础设施很可能很快就会切断你的网络。

票数 5
EN

Stack Overflow用户

发布于 2011-10-16 02:42:27

为什么不在单独的线程中执行每个帖子呢?说明:

代码语言:javascript
运行
复制
httpClient.executeMethod(method);

这需要时间,如果你想增加POST的数量,我会为请求使用一组线程(一个线程池)。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7779857

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档