2016-12-15 11 views
0

サーバーに画像をアップロードするために使用しているコードは次のとおりです。しかし、それは私に間違った結果を示すようにuser_idのような正しい値を送信していません。私がクロムでapiを押すと、うまく動作しますが、適切な結果が得られます。私は画像をアップロードすると、コードを使用していたことである。サーバーに正しい値を送信していません

@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) { 

        } 
       }); 

私は正しい結果を得るscroll down toパソコンへ転送するとき、私はこれを使用します。

@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 +""); 
        } 
       }); 

まだ、イムことができません正しい結果を得ることができます。 Rebuiltを使用すると、ログ内のApi応答は{"status":"0","message":"User doesnot exist"}になります。から サーバーが表示されます{"status":"1","message":"User profile Updated"}

この改造の問題または私のコーディングの問題ですか?

答えて

0

ファイルを最後まで移動します。

@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); 

私はそうだと思います。

+0

いいえ。同じ応答 '0メッセージ:ユーザーは終了しません。 ' –

+0

@PawandeepKaur:Partの代わりにStringを使用します。サーバー側のコードを確認してください。 – zacharia

+0

もし 'String'を使うと' @ Multipart'で画像を送ることができますか? –

関連する問題