@@ -463,14 +463,19 @@ export function createRequest(opts: HttpsRequestOptions, useLegacy: boolean = tr
463463 }
464464 } else if ( opts . method === 'PUT' ) {
465465 if ( opts . body instanceof File ) {
466- const request = NSURLRequest . requestWithURL ( NSURL . URLWithString ( opts . url ) ) ;
466+ const request = NSMutableURLRequest . alloc ( ) . initWithURL ( NSURL . URLWithString ( opts . url ) ) ;
467+ request . HTTPMethod = opts . method ;
468+ Object . keys ( heads ) . forEach ( k => {
469+ request . setValueForHTTPHeaderField ( heads [ k ] , k ) ;
470+ } ) ;
467471 task = manager . uploadTaskWithRequestFromFileProgressCompletionHandler ( request , NSURL . fileURLWithPath ( opts . body . path ) , progress , ( response : NSURLResponse , responseObject : any , error : NSError ) => {
468472 if ( error ) {
469473 failure ( task , error ) ;
470474 } else {
471475 success ( task , responseObject ) ;
472476 }
473477 } ) ;
478+ task . resume ( ) ;
474479 } else {
475480 let data : NSData ;
476481 // TODO: add support for Buffers
@@ -481,14 +486,19 @@ export function createRequest(opts: HttpsRequestOptions, useLegacy: boolean = tr
481486 } else {
482487 data = NSString . stringWithString ( JSON . stringify ( opts . body ) ) . dataUsingEncoding ( NSUTF8StringEncoding ) ;
483488 }
484- const request = NSURLRequest . requestWithURL ( NSURL . URLWithString ( opts . url ) ) ;
485- task = manager . uploadTaskWithRequestFromDataProgressCompletionHandler ( request , data , progress , ( response : NSURLResponse , responseObject : any , error : NSError ) => {
486- if ( error ) {
487- failure ( task , error ) ;
488- } else {
489- success ( task , responseObject ) ;
490- }
491- } ) ;
489+ const request = NSMutableURLRequest . alloc ( ) . initWithURL ( NSURL . URLWithString ( opts . url ) ) ;
490+ request . HTTPMethod = opts . method ;
491+ Object . keys ( heads ) . forEach ( k => {
492+ request . setValueForHTTPHeaderField ( heads [ k ] , k ) ;
493+ } ) ;
494+ task = manager . uploadTaskWithRequestFromDataProgressCompletionHandler ( request , data , progress , ( response : NSURLResponse , responseObject : any , error : NSError ) => {
495+ if ( error ) {
496+ failure ( task , error ) ;
497+ } else {
498+ success ( task , responseObject ) ;
499+ }
500+ } ) ;
501+ task . resume ( ) ;
492502 }
493503 } else {
494504 let dict = null ;
@@ -498,29 +508,7 @@ export function createRequest(opts: HttpsRequestOptions, useLegacy: boolean = tr
498508 dict = NSJSONSerialization . JSONObjectWithDataOptionsError ( NSString . stringWithString ( opts . content ) . dataUsingEncoding ( NSUTF8StringEncoding ) , 0 as any ) ;
499509 }
500510 task = manager . dataTaskWithHTTPMethodURLStringParametersHeadersUploadProgressDownloadProgressSuccessFailure ( opts . method , opts . url , dict , headers , progress , progress , success , failure ) ;
501- // switch (opts.method) {
502- // case 'GET':
503- // task = manager.GETParametersHeadersProgressSuccessFailure(opts.url, dict, headers, progress, success, failure);
504- // manager.requestSerializer.requestWithMethodURLStringParametersError(method, URLString, parameters)
505- // break;
506- // case 'POST':
507- // task = manager.POSTParametersHeadersProgressSuccessFailure(opts.url, dict, headers, progress, success, failure);
508- // break;
509- // case 'PUT':
510- // task = manager.PUTParametersHeadersSuccessFailure(opts.url, dict, headers, success, failure);
511- // break;
512- // case 'DELETE':
513- // task = manager.DELETEParametersHeadersSuccessFailure(opts.url, dict, headers, success, failure);
514- // break;
515- // case 'PATCH':
516- // task = manager.PATCHParametersHeadersSuccessFailure(opts.url, dict, headers, success, failure);
517- // break;
518- // case 'HEAD':
519- // task = manager.HEADParametersHeadersSuccessFailure(opts.url, dict, headers, success, failure);
520- // break;
521- // default:
522- // throw new Error('method_not_supported_multipart');
523- // }
511+ task . resume ( ) ;
524512 }
525513 if ( task && tag ) {
526514 runningRequests [ tag ] = task ;
0 commit comments