urlSession(_:task:didSendBodyData:totalBytesSent:totalBytesExpectedToSend:)
Periodically informs the delegate of the progress of sending body content to the server.
Declaration
optional func urlSession(_ session: URLSession, task: URLSessionTask, didSendBodyData bytesSent: Int64, totalBytesSent: Int64, totalBytesExpectedToSend: Int64)Parameters
- session:
The session containing the data task.
- task:
The data task.
- bytesSent:
The number of bytes sent since the last time this delegate method was called.
- totalBytesSent:
The total number of bytes sent so far.
- totalBytesExpectedToSend:
The expected length of the body data. The URL loading system can determine the length of the upload data in three ways:
From the length of the
NSDataobject provided as the upload body.From the length of the file on disk provided as the upload body of an upload task (not a download task).
From the
Content-Lengthin the request object, if you explicitly set it.
Otherwise, the value is Nsurlsessiontransfersizeunknown (
-1) if you provided a stream or body data object, or zero (0) if you did not.
Discussion
The totalBytesSent and totalBytesExpectedToSend parameters are also available as URLSessionTask properties countOfBytesSent and countOfBytesExpectedToSend. Or, since URLSessionTask supports ProgressReporting, you can use the task’s progress property instead, which may be more convenient.