2015-06-12 17 views

risposta

10

Upload può essere fatto utilizzando i passaggi qui sotto

Passaggio 1: Creare un metodo con sottostante Codice

UploadPhotoRetroService service = ServiceGenerator.createService(MyActivity.class, "base-url"); 
TypedFile typedFile = new TypedFile("image/jpeg", new File(imagePath)); 
service.upload(typedFile, new Callback<String>() { 
    @Override 
    public void success(String result, Response response) { 
     // success call back  
    } 
    @Override 
    public void failure(RetrofitError error) { 
     error.printStackTrace(); 
    } 
}); 

Passo 2: Creazione di interfaccia, come di seguito

public interface UploadPhotoRetroService { 
    @Multipart 
    @POST("/whatever-your-api") 
    void upload(@Part("Photo") TypedFile file, Callback<String> callback); 
} 

Passaggio 3: Creare class come sotto

public class ServiceGenerator { 

    private ServiceGenerator() { 
    } 

    public static <S> S createService(Class<S> serviceClass, String baseUrl) { 
     RestAdapter.Builder builder = new RestAdapter.Builder() 
       .setEndpoint(baseUrl) 
       .setClient(new OkClient(new OkHttpClient())); 

     RestAdapter adapter = builder.build(); 

     return adapter.create(serviceClass); 
    } 
} 
+0

Tipo edFile non è più disponibile in Retrofit. Sai come farlo senza TypedFile –

+0

Strano !! Sto usando TypedFile nella mia applicazione per caricare foto con Retrofit versione 1.9.0 e funziona perfettamente. –

+0

Per Retrofit 2.0 anziché TypedFile, si creerà un ResponseBody utilizzando ResponseBody.create – Jawnnypoo

Problemi correlati