diff --git a/Examples/Movies/Movies/main.m b/Examples/Movies/Movies/main.m index 8954f343ce..9c58a39a48 100644 --- a/Examples/Movies/Movies/main.m +++ b/Examples/Movies/Movies/main.m @@ -17,6 +17,6 @@ int main(int argc, char * argv[]) { @autoreleasepool { - return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class])); + return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class])); } } diff --git a/Libraries/Network/RCTDataManager.m b/Libraries/Network/RCTDataManager.m index 1d0a793de8..6a2e39b2dd 100644 --- a/Libraries/Network/RCTDataManager.m +++ b/Libraries/Network/RCTDataManager.m @@ -39,34 +39,35 @@ RCT_EXPORT_METHOD(queryData:(NSString *)queryType // Build data task NSURLSessionDataTask *task = [[NSURLSession sharedSession] dataTaskWithRequest:request completionHandler:^(NSData *data, NSURLResponse *response, NSError *connectionError) { + NSHTTPURLResponse *httpResponse = nil; + if ([response isKindOfClass:[NSHTTPURLResponse class]]) { + // Might be a local file request + httpResponse = (NSHTTPURLResponse *)response; + } + // Build response - NSDictionary *responseJSON; + NSArray *responseJSON; if (connectionError == nil) { NSStringEncoding encoding = NSUTF8StringEncoding; if (response.textEncodingName) { CFStringEncoding cfEncoding = CFStringConvertIANACharSetNameToEncoding((CFStringRef)response.textEncodingName); encoding = CFStringConvertEncodingToNSStringEncoding(cfEncoding); } - NSHTTPURLResponse *httpResponse = nil; - if ([response isKindOfClass:[NSHTTPURLResponse class]]) { - // Might be a local file request - httpResponse = (NSHTTPURLResponse *)response; - } - responseJSON = @{ - @"status": @([httpResponse statusCode] ?: 200), - @"responseHeaders": [httpResponse allHeaderFields] ?: @{}, - @"responseText": [[NSString alloc] initWithData:data encoding:encoding] ?: @"" - }; + responseJSON = @[ + @(httpResponse.statusCode ?: 200), + httpResponse.allHeaderFields ?: @{}, + [[NSString alloc] initWithData:data encoding:encoding] ?: @"", + ]; } else { - responseJSON = @{ - @"status": @0, - @"responseHeaders": @{}, - @"responseText": [connectionError localizedDescription] ?: [NSNull null] - }; + responseJSON = @[ + @(httpResponse.statusCode), + httpResponse.allHeaderFields ?: @{}, + connectionError.localizedDescription ?: [NSNull null], + ]; } // Send response (won't be sent on same thread as caller) - responseSender(@[RCTJSONStringify(responseJSON, NULL)]); + responseSender(responseJSON); }]; diff --git a/Libraries/Network/XMLHttpRequest.ios.js b/Libraries/Network/XMLHttpRequest.ios.js index 6c7367c18d..64b5ea526c 100644 --- a/Libraries/Network/XMLHttpRequest.ios.js +++ b/Libraries/Network/XMLHttpRequest.ios.js @@ -30,10 +30,7 @@ class XMLHttpRequest extends XMLHttpRequestBase { }, // TODO: Do we need this? is it used anywhere? 'h' + crc32(method + '|' + url + '|' + data), - (result) => { - result = JSON.parse(result); - this.callback(result.status, result.responseHeaders, result.responseText); - } + this.callback.bind(this) ); }