CB-5588 iOS: Add response headers to upload result

This change adds the HTTP response headers to the result for successful
uploads.


Project: 
http://git-wip-us.apache.org/repos/asf/cordova-plugin-file-transfer/repo
Commit: 
http://git-wip-us.apache.org/repos/asf/cordova-plugin-file-transfer/commit/28fb0a7c
Tree: 
http://git-wip-us.apache.org/repos/asf/cordova-plugin-file-transfer/tree/28fb0a7c
Diff: 
http://git-wip-us.apache.org/repos/asf/cordova-plugin-file-transfer/diff/28fb0a7c

Branch: refs/heads/master
Commit: 28fb0a7c4d07278d2f765f6762fb8b1a6fd1d2e4
Parents: 651460f
Author: Daniel Heffernan <[email protected]>
Authored: Mon Feb 10 14:58:37 2014 -0500
Committer: Andrew Grieve <[email protected]>
Committed: Mon Feb 10 14:58:37 2014 -0500

----------------------------------------------------------------------
 src/ios/CDVFileTransfer.h | 1 +
 src/ios/CDVFileTransfer.m | 4 +++-
 2 files changed, 4 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cordova-plugin-file-transfer/blob/28fb0a7c/src/ios/CDVFileTransfer.h
----------------------------------------------------------------------
diff --git a/src/ios/CDVFileTransfer.h b/src/ios/CDVFileTransfer.h
index aa1cf9e..1ce7abe 100644
--- a/src/ios/CDVFileTransfer.h
+++ b/src/ios/CDVFileTransfer.h
@@ -64,6 +64,7 @@ extern NSString* const kOptionsKeyCookie;
 - (void)cancelTransfer:(NSURLConnection*)connection;
 
 @property (strong) NSMutableData* responseData; // atomic
+@property (nonatomic, strong) NSDictionary* responseHeaders;
 @property (nonatomic, strong) CDVFileTransfer* command;
 @property (nonatomic, assign) CDVFileTransferDirection direction;
 @property (nonatomic, strong) NSURLConnection* connection;

http://git-wip-us.apache.org/repos/asf/cordova-plugin-file-transfer/blob/28fb0a7c/src/ios/CDVFileTransfer.m
----------------------------------------------------------------------
diff --git a/src/ios/CDVFileTransfer.m b/src/ios/CDVFileTransfer.m
index 1ae0730..e35e2fe 100644
--- a/src/ios/CDVFileTransfer.m
+++ b/src/ios/CDVFileTransfer.m
@@ -513,7 +513,7 @@ static CFIndex WriteDataToStream(NSData* data, 
CFWriteStreamRef stream)
 
 @implementation CDVFileTransferDelegate
 
-@synthesize callbackId, connection = _connection, source, target, 
responseData, command, bytesTransfered, bytesExpected, direction, responseCode, 
objectId, targetFileHandle;
+@synthesize callbackId, connection = _connection, source, target, 
responseData, responseHeaders, command, bytesTransfered, bytesExpected, 
direction, responseCode, objectId, targetFileHandle;
 
 - (void)connectionDidFinishLoading:(NSURLConnection*)connection
 {
@@ -532,6 +532,7 @@ static CFIndex WriteDataToStream(NSData* data, 
CFWriteStreamRef stream)
             uploadResult = [NSMutableDictionary dictionaryWithCapacity:3];
             if (uploadResponse != nil) {
                 [uploadResult setObject:uploadResponse forKey:@"response"];
+                [uploadResult setObject:self.responseHeaders 
forKey:@"headers"];
             }
             [uploadResult setObject:[NSNumber 
numberWithLongLong:self.bytesTransfered] forKey:@"bytesSent"];
             [uploadResult setObject:[NSNumber numberWithInt:self.responseCode] 
forKey:@"responseCode"];
@@ -600,6 +601,7 @@ static CFIndex WriteDataToStream(NSData* data, 
CFWriteStreamRef stream)
 
         self.responseCode = [httpResponse statusCode];
         self.bytesExpected = [response expectedContentLength];
+        self.responseHeaders = [httpResponse allHeaderFields];
         if ((self.direction == CDV_TRANSFER_DOWNLOAD) && (self.responseCode == 
200) && (self.bytesExpected == NSURLResponseUnknownLength)) {
             // Kick off HEAD request to server to get real length
             // bytesExpected will be updated when that response is returned

Reply via email to