You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cordova.apache.org by he...@apache.org on 2012/06/27 20:33:51 UTC

[20/20] ios commit: [CB-765] Header Support iOS FileTransfer upload

[CB-765] Header Support iOS FileTransfer upload


Project: http://git-wip-us.apache.org/repos/asf/incubator-cordova-ios/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-cordova-ios/commit/43f78929
Tree: http://git-wip-us.apache.org/repos/asf/incubator-cordova-ios/tree/43f78929
Diff: http://git-wip-us.apache.org/repos/asf/incubator-cordova-ios/diff/43f78929

Branch: refs/heads/master
Commit: 43f789295ff45cfca071dd7c788c602db1124d5c
Parents: 850a08b
Author: hermwong <he...@gmail.com>
Authored: Wed Jun 27 10:35:51 2012 -0700
Committer: hermwong <he...@gmail.com>
Committed: Wed Jun 27 10:35:51 2012 -0700

----------------------------------------------------------------------
 CordovaLib/Classes/CDVFileTransfer.m |   28 ++++++++++++++++++++++++----
 1 files changed, 24 insertions(+), 4 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-cordova-ios/blob/43f78929/CordovaLib/Classes/CDVFileTransfer.m
----------------------------------------------------------------------
diff --git a/CordovaLib/Classes/CDVFileTransfer.m b/CordovaLib/Classes/CDVFileTransfer.m
index 9a3ab53..8d0d7fa 100644
--- a/CordovaLib/Classes/CDVFileTransfer.m
+++ b/CordovaLib/Classes/CDVFileTransfer.m
@@ -103,16 +103,36 @@
     //Content-Type: multipart/form-data; boundary=*****org.apache.cordova.formBoundary
 	[req setValue:@"XMLHttpRequest" forHTTPHeaderField:@"X-Requested-With"];
 	NSString* userAgent = [[self.webView request] valueForHTTPHeaderField:@"User-agent"];
-	if(userAgent) {
+	
+    if(userAgent) {
 		[req setValue: userAgent forHTTPHeaderField:@"User-Agent"];
 	}
-
+	
+    NSMutableDictionary* headers = [params objectForKey:@"headers"];
+    NSEnumerator *enumerator = [headers keyEnumerator];
+	id val;
+   	NSString *nkey;
+    
+	while (nkey = [enumerator nextObject]) {
+		val = [headers objectForKey:nkey];
+		if(!val || val == [NSNull null]) {
+			continue;	
+		}
+		// if it responds to stringValue selector (eg NSNumber) get the NSString
+		if ([val respondsToSelector:@selector(stringValue)]) {
+			val = [val stringValue];
+		}
+		// finally, check whether it is a NSString (for dataUsingEncoding selector below)
+		if (![val isKindOfClass:[NSString class]]) {
+			continue;
+		}
+        
+        [req setValue:val forHTTPHeaderField:nkey];	
+    }
     
 	NSMutableData *postBody = [NSMutableData data];
 	
-	NSEnumerator *enumerator = [params keyEnumerator];
 	id key;
-	id val;
 	
 	while ((key = [enumerator nextObject])) {
 		val = [params objectForKey:key];