2015-06-12 8 views

Antwort

10

hochladen kann mit folgenden Schritten

Schritt 1 durchgeführt werden: mit folgendem Code Erstellen Sie eine Methode

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

Schritt 2: Erstellen Schnittstelle wie unten

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

Schritt 3: Erstellen Klasse wie unten

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 ist in Retrofit nicht mehr verfügbar. Weißt du, wie es ohne TypedFile –

+0

Seltsam !! Ich verwende TypedFile in meiner Anwendung, um ein Foto mit Retrofit Version 1.9.0 hochzuladen, und es funktioniert gut. –

+0

Für Retrofit 2.0 anstelle von TypedFile würden Sie ein ResponseBody mit ResponseBody.create erstellen – Jawnnypoo

Verwandte Themen