iOS NSURLConnection:如何知道所有字节都已发送?

iOS NSURLConnection:如何知道所有字节都已发送?,ios,networking,afnetworking,Ios,Networking,Afnetworking,我对任何接收到的字节都不感兴趣。我只想知道是否已经发送了所有字节(额外的好处是:服务器通过TCP-ACK确认)。这在坏网络和网络交换情况下尤其有趣 我更愿意使用NSURLConnection/nsurlconnectionelegate来实现它,我猜这些类不提供它,URLSession(Delegate)也不提供 不幸的是,到目前为止,我只看到了如何查看接收到的字节 有人知道如何查找发送的字节吗?NSURLConnection已被弃用。您不应该将其用于新的开发,而应该将现有代码从中迁移出去 UR

我对任何接收到的字节都不感兴趣。我只想知道是否已经发送了所有字节(额外的好处是:服务器通过TCP-ACK确认)。这在坏网络和网络交换情况下尤其有趣

我更愿意使用NSURLConnection/nsurlconnectionelegate来实现它,我猜这些类不提供它,URLSession(Delegate)也不提供

不幸的是,到目前为止,我只看到了如何查看接收到的字节


有人知道如何查找发送的字节吗?

NSURLConnection已被弃用。您不应该将其用于新的开发,而应该将现有代码从中迁移出去

URLSession
的各种委托方法将通知您会话任务的进度

例如,
URLSessionTaskDelegate
方法
urlSession(\uu:task:didcomleteWitherRor:)
会在任务完成时通知您

URLSessionTaskDelegate
方法
urlSession(uu:task:didSendBodyData:totalBytesSent:totalBytesExpectedToSend:)
将告诉您发送的字节数


第二种方法似乎信息量更大,更接近你想要的。

嗨,邓肯。这可能是最好的答案,但不幸的是,它仍然很不令人满意:1)它只报告正文数据,但HTTP/S增加了大量开销,我需要确保它也被发送,2)它不解决是否只发送字节还是也发送TCP-ACK,3)三种可能的下载任务都有各自的缺点:这里的上传类型当然不对,数据不会在后台运行,下载听起来好像只能直接写入文件。