2010-01-18 39 views
3

我想在彼此之后快速启动多个HTTP请求,而不必等到先前的响应到达。 I've tried this using WebClient.UploadStringAsync,但这不起作用。我想有效地实现以下情形:如何异步启动多个HTTP请求?

  • 发送请求1
  • 发送请求2
  • 发送请求3

而在另一个线程:

  • 接收响应1
  • 接收响应2
  • 接收响应3

这可以在Silverlight中完成吗?

+1

这可能是有趣的:http://stackoverflow.com/questions/229011/aynchronous-web-server-calls-in-silverlight-and-maximum-http-connections – 2010-01-18 12:01:33

回答

4

我想以后对方迅速启动多个HTTP请求,而不必等待上一响应到达

这就是所谓的HTTP管线化(假设你希望使用相同插座),它是不受许多代理和网关设备的支持。如果Silverlight试图支持它,我会感到惊讶。

2

是的,它可以做到。什么导致你相信UploadStringAsync不工作?

这是我的猜测,你正在张贴到ASP.NET与Sessions打开(默认)的权利?

请求将在服务器端排队,因为ASP.NET一次只能处理一个特定会话的请求。

+0

感谢您的回应,但我们aren' t使用ASP。相反,我正在研究在Silverlight客户端和C++服务器应用程序之间通过HTTP执行IPC的原型。 – 2010-01-18 13:18:56

+0

@Dimitri:你需要使用80端口还是使用HTTP协议?如果没有,你考虑使用套接字来获得更好的控制水平? – AnthonyWJones 2010-01-18 15:41:14

+0

如果是我用的,那么使用哪个端口并不重要。但是,我的支持部门的同事告诉我,如果他们的防火墙和/或代理服务器需要重新配置,我们的客户总是抱怨。在这种情况下,我也听到赞美Web应用程序,因为他们总是使用相同的端口,这是不受限制的。因此,我认为如果我们的Silverlight应用程序可以通过“知名”的HTTP端口80进行通信,那将会很好。 – 2010-01-18 16:01:28