2015-06-12 19 views

Odpowiedz

10

importu mogą być wykonane za pomocą poniższych kroków

Krok 1: Tworzenie metodę z poniżej kodu

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(); 
    } 
}); 

Etap 2: Tworzenie interfejsu poniżej

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

Krok 3: Tworzenie klasy poniżej poniżej:

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

Typ edFile nie jest już dostępny w Retroficie. Czy wiesz, jak to zrobić bez Wpisanego pliku –

+0

Dziwne !! Używam aplikacji TypedFile w mojej aplikacji do przesyłania zdjęć z Retrofit w wersji 1.9.0 i działa poprawnie. –

+0

Dla Retrofit 2.0 zamiast TypedFile, utworzysz ResponseBody za pomocą ResponseBody.create – Jawnnypoo