PPOTURLSession.h 1.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. //
  2. // PPOTURLSession.h
  3. // Copyright © 2015 PayPal, Inc. All rights reserved.
  4. //
  5. #import <Foundation/Foundation.h>
  6. /**
  7. Request completion callback type
  8. */
  9. typedef void(^PPOTURLSessionCompletionBlock)(NSData * _Nullable data, NSHTTPURLResponse * _Nullable response, NSError * _Nullable error);
  10. /**
  11. A URL session to manage network connections
  12. */
  13. @interface PPOTURLSession: NSObject
  14. /**
  15. @return a session to send requests
  16. */
  17. + (nonnull PPOTURLSession *)session;
  18. /**
  19. @return a session to send requests with a specific timeout for requests
  20. */
  21. + (nonnull PPOTURLSession *)sessionWithTimeoutIntervalForRequest:(NSTimeInterval)timeoutIntervalForRequest;
  22. /**
  23. Sends a URL request
  24. @param request the request to send
  25. @param completionBlock the completion block invoked for the response
  26. */
  27. - (void)sendRequest:(nonnull NSURLRequest *)request
  28. completionBlock:(nullable PPOTURLSessionCompletionBlock)completionBlock;
  29. /**
  30. Attempts to stop the session from accepting any future requests
  31. */
  32. - (void)finishTasksAndInvalidate;
  33. @end