1

这个问题主要是一个 HTTP 问题,我正在开发一个 iOS 应用程序,尽管这个问题并不特定于 iOS。

我想使用持久连接,并且这样做没有问题,直到 HTTP 响应使用分块传输类型,而不是显式发送 Content-Length。响应本身正常工作,如果我不需要取消响应,它就会工作。这个响应可能需要一段时间来发送响应(它可能需要几分钟并且永远不会发送最后的 0 块),而且我经常想取消这个请求(和响应)并在同一个连接上发送一个新请求。

使用 HTTP/1.1,如何在关闭连接的情况下取消分块响应响应?

我目前的解决方法是不使用持久连接,但是我失去了使用持久连接的所有好处,这使得启动这些请求的速度要慢得多。

4

1 回答 1

4

你不能取消它。HTTP 协议中没有任何内容允许您中断 HTTP 响应。您要么需要读取并丢弃整个响应,要么关闭连接。但是,您可以在服务器仍在发送响应时在同一连接上发出另一个 HTTP 请求,但您仍然必须处理对原始请求的整个响应。

于 2012-07-18T22:55:40.227 回答