J'essaie de publier sur un webapi que j'ai fait sur C# à partir d'une application mobile faite avec NativeScript. J'utilise à la fois nativescript-imagepicker
et nativescript-background-http
. Mais l'événement error
est toujours en cours.NativeScript - nativescript-background-http ne fonctionne pas
C'est le code que j'ai: Mes deux importations:
import * as imagepicker from "nativescript-imagepicker";
import * as bghttp from "nativescript-background-http";
Voilà comment je suis l'uri de l'image:
SelectImage(): void {
let context = imagepicker.create({
mode: "single"
});
context.authorize()
.then(() => { return context.present() })
.then((selection) => {
selection.forEach((selected) => {
this.signupModel.CIPath = selected.fileUri;
})
}).catch((e) => {
console.log(e);
});
}
Et voilà comment je suis en train de poster les données:
SignUp(): void {
let session = bghttp.session("image-upload");
let request = {
url: "http://localhost:53286/api/Home/Signup",
method: "POST",
headers: {
"Content-Type": "application/octet-stream",
"File-Name": this.signupModel.CIPath
},
description: "{ 'uploading': 'Uploading file...' }"
};
let task: bghttp.Task;
let params = [{
name: "ImageCI", mimeType: "image/jpeg", filename: this.signupModel.CIPath
}, {
name: "Rut", value: this.signupModel.Rut
}, {
name: "Name", value: this.signupModel.Name
}, {
name: "Address", value: this.signupModel.Address
}, {
name: "Commune", value: this.signupModel.Commune
}, {
name: "PhoneNumber", value: this.signupModel.PhoneNumber
}, {
name: "Email", value: this.signupModel.Email
}, {
name: "Password", value: this.signupModel.Password
}];
task = session.multipartUpload(params, request);
task.on("error", (response: any) => {
console.log(JSON.stringify(response));
alert({title: "Sistema 3 Esferas", message:"Error subiendo imagen...", okButtonText: "Cerrar"});
});
task.on("responded", (response: any) => {
console.log(JSON.stringify(response));
});
}
Que puis-je faire de mal? Merci d'avance. :)
Test sur un émulateur? Si oui, gardez à l'esprit que la configuration par défaut ne fonctionne pas avec 'localhost' - voir ce fil pour plus de détails https://stackoverflow.com/a/39958955/4936697 –
Quelle est la réponse d'erreur? –