Google Toolbox for Mac - Session Fetcher
Project site https://github.com/google/gtm-session-fetcher
Discussion group http://groups.google.com/group/google-toolbox-for-mac
GTMSessionFetcher makes it easy for Cocoa applications to perform http
operations. The fetcher is implemented as a wrapper on
NSURLSession, so its
behavior is asynchronous and uses operating-system settings on iOS and Mac OS X.
- Simple to build; only one source/header file pair is required
- Simple to use: takes just two lines of code to fetch a request
- Supports upload and download sessions
- Flexible cookie storage
- Automatic retry on errors, with exponential backoff
- Support for generating multipart MIME upload streams
- Easy, convenient logging of http requests and responses
- Supports plug-in authentication such as with GTMAppAuth
- Easily testable; self-mocking
- Automatic rate limiting when created by the
- Fully independent of other projects
You may find interesting
v1.4.0 Release - 2020-04-30 18:35:33
- #141 Handle empty and non-existing files to upload.
- #188 Support metrics collection.
- #191 Add Swift Package Manager support.
- Unit test threading fixes.
v1.3.1 Release - 2020-01-08 21:20:46
- #174 Release fetcher's active background task while awaiting retry.
- #170 Work around early iOS 13 betas still in use.
- #167 Make GTMSessionUploadFetcher's chunkSize property readonly.
Fixes some flakey tests, and does a little internal cleanup related to SDK version macros.
v1.3.0 Release - 2019-10-22 17:03:48
- #145 - GTMSessionUploadFetcher: pass through allowsCellularAccess from the parent request to subsequent chunk requests.
- #154 - Reconnect background session fetchers after UIApplicationDidFinishLaunching.
- #155 - Include support for TLSMinimumSupportedProtocolVersion.
- #160 - Use SecTrustEvaluateWithError on platforms that require it.
- #161 - Clean up macros guarding the use of TLSMinimumSupportedProtocol.
- #163 - Use WKWebView in GTMSessionFetcherLogViewController, rather than UIWebView
These should also allow use of the SessionFetcher with Catalyst.
v1.2.2 Release - 2019-05-17 17:59:43
- #139 - Fix a synchronization-related crash in
- #142 - Safely handle when the
NSURLSessionhas been swizzled and its delegate replaced with a proxy.
v1.2.1 Release - 2018-11-19 15:26:23
- #126 Add a variant to -mockFetcherServiceWithFakedData:error:
- Avoid parsing and generating the redirect URL if we are not changing the scheme of the URL.
- Fixes for nullability build issue with more warnings enabled.
- Don't build GTMSessionSyncMonitorInternal in DEBUG builds if NS_BLOCK_ASSERTIONS is defined. Unless GTMSESSION_ASSERT_AS_LOG is also defined.
- #134 Remove deprecated mutableRequest property.
v1.2.0 Release - 2018-07-26 12:35:54
- #118 Some string formatting fixes for newer Xcodes.
- #121 Ensure the body from an HTTP failure is exposed in the NSError during callbacks.
- #125 Ensure the content type header is also expose in the NSError so the data can be inspected.
- #125 Fix up some headers for resuming media transfers.
- #125 When the library creates the logging directory, tag it as not being backed up.
Exposing the HTTP payload on HTTP failures can result in more memory usage (there is a limit on how big of data it will expose in the error), so the library was bumped to 1.2.x so help call out this potential impact on apps at runtime.
v1.1.15 Release - 2018-04-06 14:30:50
- #115 Fixes for new format string checks in Xcode 9.3.
v1.1.14 Release - 2018-02-26 20:34:59
- #111 Support for
CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELFwhich CocoaPods seems to be adopting.
v1.1.13 Release - 2018-01-29 16:56:33
- Xcode 9.x updates/support
- Better handing for unknown size uploads (#102)
- Catch some range errors (they shouldn't happen, but we've seen some reports with some customization of the fetcher triggering them) (#102)
- Add a cancellation handler block property to GTMSessionUploadFetcher (#105)
v1.1.12 Release - 2017-09-27 19:39:01
- Sets default callback queue for recreated upload fetchers. #93
- Fixes for Xcode 9 GM #96
v1.1.11 Release - 2017-07-10 18:50:25
- Support for watchOS.
- Fix compatibility with Xcode 9 betas.
v1.1.10 Release - 2017-05-19 19:25:36
- Suppress some warnings (#77)
- Fix GTMSessionUploadFetcher hanging on retry (#83)
- Support for unknown file lengths in GTMSessionUploadFetcher (#84)
v1.1.9 Release - 2017-03-13 18:05:35
- Better synchronization around access to the background task id.
- Changed how background tasks are captured, so building an iOS Extension should be easier.
- Streaming support added to the testBlock.
v1.1.8 Release - 2017-01-11 18:33:08
Release to pick up PRs #69, #70, #71.
- tvOS support/cleanups
- UIApplication/background task improvements
- Remove legacy enum naming.
- Fix one infinite looping condition.
v1.1.7 Release - 2016-10-21 16:17:26
Tagging a release with #63 (delegate callbacks on queue), #64 (logging defaults), #65 (logview swift to delete), #66 (Xcode 8 updates)
v1.1.6 Release - 2016-08-15 19:15:41
Release to pick up #57 and #58.
v1.1.5 Release - 2016-08-05 20:43:24
New release to pickup PR #50, #51, #53, #55
- Stop exposing some things as mutable to finish out threading cleanups.
- More complete use of atomic/nonatomic to go with the threading cleanups.
- More threading handing to avoid some races/deadlocks.
v1.1.4 Release - 2016-05-31 14:14:25
New release to pickup PR #45, #46, #47, #48
- Refactoring to expose a block for custom challenge handling.
- Threading cleanup and enforcement internally.
- Expanding some HeaderDoc comments about usage.
v1.1.3 Release - 2016-05-05 13:43:21
New release with https://github.com/google/gtm-session-fetcher/pull/43 merged in to let other pods depend on it for the background task fixes and testing.
v1.1.2 Release - 2016-04-21 17:10:08
Named release for the podspec to get pushed with tvOS support included.
v1.1.1 Release - 2016-04-07 13:52:19
Cutting a new to capture a tweak to the callback queues that make them a little nicer to use (they default now instead of returning nil).
1.1.0 Release - 2016-03-08 18:39:13
Release cut to provide something for the podspec to point at.