Загрузить файл на сервер с модифицированным Android?

#android #retrofit

#Android #модернизация

Вопрос:

Я пытаюсь загрузить изображение на свой сервер. URL-адрес изображения PUT запрашивается с “Content-Type” : “application/octet-stream” помощью приведенного ниже моего метода интерфейса для модифицированного вызова

  @Headers("Content-Type:application/octet-stream")
@PUT
Call<UserIdentity> putUserProfileImage(@Url String url,
                                       @Body RequestBody file);
  

И я называю это как

 public void putProfilePic(String url, File profileImage,
                          final Action1<UserIdentity> userIdentityAction) {
    RequestBody fileBody = RequestBody.create(MediaType.parse("image/png"), profileImage);

    appCMSUserIdentityRest.putUserProfileImage(url, fileBody).enqueue(new Callback<UserIdentity>() {
        @Override
        public void onResponse(@NonNull Call<UserIdentity> call,
                               @NonNull Response<UserIdentity> response) {
            if (response.body() != null) {
                Observable.just(response.body())
                        .onErrorResumeNext(throwable -> Observable.empty())
                        .subscribe(userIdentityAction);
            }
        }

        @Override
        public void onFailure(@NonNull Call<UserIdentity> call, @NonNull Throwable t) {
            Observable.just((UserIdentity) null)
                    .onErrorResumeNext(throwable -> Observable.empty())
                    .subscribe(userIdentityAction);
        }
    });
}
  

Файл содержит изображение.
Любая помощь?

Комментарии:

1. Я не понимаю вашего вопроса. Что вы пытаетесь сделать? Это сбой? Как? Можете ли вы предоставить журналы? Кстати, я заметил, что в вашем заголовке отсутствует пробел (не уверен, чувствителен ли ваш сервер к этому). Вместо Content-Type:application/octet-stream этого должно быть Content-Type: application/octet-stream

2. смотрите этот пост: futurestud.io/tutorials /…