nativescript-http-formdata
Version:
A NativeScript plugin to post/upload file as multipart/form-data to server.
48 lines • 2.07 kB
JavaScript
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