【问题标题】:Uploading compress image to server using retrofit使用改造将压缩图像上传到服务器
【发布时间】:2015-06-12 19:30:00
【问题描述】:

我在我的项目中使用改造。现在我需要使用改造在服务器上上传图像。所以我需要以下问题的帮助:

如何在表单数据中使用改造将压缩位图上传到服务器? 任何链接或示例都会有所帮助。

【问题讨论】:

    标签: java android image-uploading multipartform-data retrofit


    【解决方案1】:

    可以使用以下步骤完成上传

    第 1 步:使用以下代码创建方法

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

    第 2 步:创建如下界面

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

    第3步:创建类如下

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

    【讨论】:

    • TypedFile 在 Retrofit 中不再可用。没有TypedFile你知道怎么做吗
    • 奇怪!!我在我的应用程序中使用 TypedFile 来上传带有 Retrofit 版本 1.9.0 的照片,它工作正常。
    • 对于 Retrofit 2.0 而不是 TypedFile,您将使用 ResponseBody.create 创建一个 ResponseBody
    猜你喜欢
    • 2014-02-13
    • 2018-10-05
    • 2019-02-14
    • 2017-05-21
    • 2021-09-01
    • 1970-01-01
    • 2018-01-23
    • 2018-03-29
    • 1970-01-01
    相关资源
    最近更新 更多