2016-12-15 1 views
0

Voici le code que j'utilise pour télécharger l'image sur le serveur. Mais ce n'est pas envoyer la bonne valeur comme user_id de sorte qu'il me montre mauvais résultat. Quand je frappe l'api sur le chrome, son bon fonctionnement donne un bon résultat. J'utilisais le code avec le téléchargement Image:Rénovation n'envoie pas la bonne valeur au serveur

@Multipart 
@POST("/queli_technologies/index.php/Webservice") 
Call<EditProfileResponse> editProfile(@Part("u_id") String firstname, 
            @Part("f_name") String lastname, 
            @Part("l_name") String email, 
            @Part("c_no") String password, 
            @Part MultipartBody.Part file, 
            @Part("edit_profile") String register); 

RequestBody reqFile = RequestBody.create(MediaType.parse("image/*"),file); 
       MultipartBody.Part body = MultipartBody.Part.createFormData("upload", file.getName(), reqFile); 

       service = RetroClient.getApiService(); 


       Call<EditProfileResponse> responseCall = service.editProfile("44","Demo","android","0987654321",body,"edit_profile"); 

       responseCall.enqueue(new Callback<EditProfileResponse>() { 
        @Override 
        public void onResponse(Call<EditProfileResponse> call, Response<EditProfileResponse> response) { 
         if (response.isSuccessful()){ 
          EditProfileResponse res = response.body(); 
          Log.e("Response " , res.getStatus() + " message : " + res.getMessage()); 
          dialog.dismiss(); 
         } 
        } 

        @Override 
        public void onFailure(Call<EditProfileResponse> call, Throwable t) { 

        } 
       }); 

Quand je DONOT obtenir le résultat correct j'utiliser ceci:

@Multipart 
@POST("/queli_technologies/index.php/Webservice") 
Call<EditProfileResponse> editProfile(@Part("u_id") RequestBody userId, 
             @Part("f_name") RequestBody frstname, 
             @Part("l_name") RequestBody lastname, 
             @Part("c_no") RequestBody contctnum, 
             @Part MultipartBody.Part file, 
             @Part("edit_profile") RequestBody edit); 


    File file = new File(BaseActivity.basicImagePath); 
    RequestBody reqFile = RequestBody.create(MediaType.parse("image/*"), file); 
       MultipartBody.Part body = MultipartBody.Part.createFormData("upload", file.getName(), reqFile); 

       service = RetroClient.getApiService(); 
       String text = "31"; 
       RequestBody useridbody =RequestBody.create(MediaType.parse("text/plain"), text); 
       RequestBody fnbody =RequestBody.create(MediaType.parse("text/plain"), "Demo"); 
       RequestBody lnbody =RequestBody.create(MediaType.parse("text/plain"), "android"); 
       RequestBody conbody =RequestBody.create(MediaType.parse("text/plain"), "0987654321"); 
       RequestBody isbody =RequestBody.create(MediaType.parse("text/plain"), "edit_profile"); 

       Call<EditProfileResponse> responseCall = service.editProfile(useridbody,fnbody,lnbody,conbody,body,isbody); 

       responseCall.enqueue(new Callback<EditProfileResponse>() { 
        @Override 
        public void onResponse(Call<EditProfileResponse> call, Response<EditProfileResponse> response) { 
         if (response.isSuccessful()){ 
          EditProfileResponse res = response.body(); 
          Log.e("Response " , res.getStatus() + " message : " + res.getMessage()); 
          dialog.dismiss(); 
         } 
        } 

        @Override 
        public void onFailure(Call<EditProfileResponse> call, Throwable t) { 
         Log.e("Failure Response " , t +""); 
        } 
       }); 

encore je ne suis pas en mesure obtenir un bon résultat. Réponse Api dans Log donne {"status":"0","message":"User doesnot exist"} lors de l'utilisation grâce à la rétrofit. et de serveur il montre {"status":"1","message":"User profile Updated"}

Est-ce ce problème de rattrapage ou mon problème de codage?

Répondre

0

Déplacez le fichier pour durer.

@POST("/queli_technologies/index.php/Webservice") 
Call<EditProfileResponse> editProfile(@Part("u_id") String firstname, 
           @Part("f_name") String lastname, 
           @Part("l_name") String email, 
           @Part("c_no") String password,          
           @Part("edit_profile") String register, 
           @Part MultipartBody.Part file); 

Je pense que cela devrait fonctionner.

+0

Non Sir .. même réponse '0 message: L'utilisateur ne sort pas'' –

+0

@PawandeepKaur: Utiliser Chaîne au lieu de Pièce. Veuillez vérifier le code du serveur. – zacharia

+0

Si j'utilise 'String' alors comment puis-je envoyer une image avec' @ Multipart'? –