2017-10-16 17 views
0

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. :)

+1

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 –

+0

Quelle est la réponse d'erreur? –

Répondre

0

Merci, Nick, pour votre commentaire.

Oui, cela a fonctionné. Je devais changer cette ligne:

url: "http://localhost:53286/api/Home/Signup" 

à:

url: "http://10.0.2.2:53286/api/Home/Signup" 

Et qui a résolu le problème. :)