Skip to content

Commit 4a25a73

Browse files
committed
fix(ios): rewrote to support all HTTP methods.
feat: support passing File as upload body
1 parent b7ad6b9 commit 4a25a73

File tree

1 file changed

+20
-32
lines changed

1 file changed

+20
-32
lines changed

src/https/request.ios.ts

Lines changed: 20 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)