Instance Method


Tells the delegate when a task requires a new request body stream to send to the remote server.


optional func urlSession(_ session: URLSession, task: URLSessionTask, needNewBodyStream completionHandler: @escaping (InputStream?) -> Void)



The session containing the task that needs a new body stream.


The task that needs a new body stream.


A completion handler that your delegate method should call with the new body stream.


The task calls this delegate method under two circumstances:

  • To provide the initial request body stream if the task was created with uploadTask(withStreamedRequest:)

  • To provide a replacement request body stream if the task needs to resend a request that has a body stream because of an authentication challenge or other recoverable server error.

See Also

Working with Upload Tasks

func urlSession(URLSession, task: URLSessionTask, didSendBodyData: Int64, totalBytesSent: Int64, totalBytesExpectedToSend: Int64)

Periodically informs the delegate of the progress of sending body content to the server.