UNPKG

nativescript-http-formdata

Version:

A NativeScript plugin to post/upload file as multipart/form-data to server.

48 lines 2.07 kB
import { Common } from "./TNSHttpFormData.common"; export class TNSHttpFormData extends Common { constructor() { super(); } post(url, params, options) { return new Promise((resolve, reject) => { let multipartFormData = OMGMultipartFormData.new(); for (let param of params) { if (param.fileName && param.contentType) { multipartFormData.addFileParameterNameFilenameContentType(param.data, param.parameterName, param.fileName, param.contentType); } else { multipartFormData.addTextParameterName(param.data, param.parameterName); } } let request = OMGHTTPURLRQ.POSTError(url, multipartFormData); if (options && options.headers) { for (let k in options.headers) { request.addValueForHTTPHeaderField(options.headers[k], k); } console.log(request.allHTTPHeaderFields); } NSURLConnection.sendAsynchronousRequestQueueCompletionHandler(request, NSOperationQueue.currentQueue, (response, data, error) => { if (error) { reject(error); return; } let desc; const temp = NSString.alloc().initWithDataEncoding(data, NSASCIIStringEncoding); try { desc = JSON.parse(temp.description); } catch (e) { desc = temp.description; } let customResponse = { headers: response.allHeaderFields, statusCode: response.statusCode, statusMessage: NSHTTPURLResponse.localizedStringForStatusCode(response.statusCode), body: desc }; resolve(customResponse); }); }); } } //# sourceMappingURL=TNSHttpFormData.ios.js.map