mirror of
https://github.com/facebook/react-native.git
synced 2025-11-01 09:14:26 +00:00
fix RCTNetworking contentType issue (#35640)
Summary: https://github.com/facebook/react-native/blob/96027f787ade1a465569975059426d2c03ee5ad0/Libraries/Network/RCTNetworking.mm#L418 because `RCTNullIfNil(response.MIMEType)`, `contentType` may be `[NSNull null]` https://github.com/facebook/react-native/blob/96027f787ade1a465569975059426d2c03ee5ad0/Libraries/Network/RCTNetworking.mm#L114 Here only check `partContentType` is not nil, This causes the custom type never used https://github.com/facebook/react-native/blob/96027f787ade1a465569975059426d2c03ee5ad0/Libraries/Network/RCTNetworking.mm#L334 more serious here, if `dataContentType` is `[NSNull null]` , it will crash the application `-[NSNull hasPrefix:]: unrecognized selector sent to instance 0x7fff8004b700` ## Changelog [iOS] [Fixed] - fix dataContentType may be [NSNull null] issue Pull Request resolved: https://github.com/facebook/react-native/pull/35640 Reviewed By: cipolleschi Differential Revision: D42067206 Pulled By: dmytrorykun fbshipit-source-id: 073e6589111f5117486b69b8206a07ef1995c5b8
This commit is contained in:
committed by
Facebook GitHub Bot
parent
3487640512
commit
c0834b884b
@@ -111,7 +111,7 @@ static NSString *RCTGenerateFormBoundary()
|
||||
// Print headers.
|
||||
NSMutableDictionary<NSString *, NSString *> *headers = [_parts[0][@"headers"] mutableCopy];
|
||||
NSString *partContentType = result[@"contentType"];
|
||||
if (partContentType != nil) {
|
||||
if (partContentType != nil && ![partContentType isEqual:[NSNull null]]) {
|
||||
headers[@"content-type"] = partContentType;
|
||||
}
|
||||
[headers enumerateKeysAndObjectsUsingBlock:^(NSString *parameterKey, NSString *parameterValue, BOOL *stop) {
|
||||
@@ -331,7 +331,8 @@ RCT_EXPORT_MODULE()
|
||||
request.HTTPBody = result[@"body"];
|
||||
NSString *dataContentType = result[@"contentType"];
|
||||
NSString *requestContentType = [request valueForHTTPHeaderField:@"Content-Type"];
|
||||
BOOL isMultipart = [dataContentType hasPrefix:@"multipart"];
|
||||
BOOL isMultipart = ![dataContentType isEqual:[NSNull null]] &&
|
||||
[dataContentType hasPrefix:@"multipart"];
|
||||
|
||||
// For multipart requests we need to override caller-specified content type with one
|
||||
// from the data object, because it contains the boundary string
|
||||
|
||||
Reference in New Issue
Block a user