I have the same problem trying to upload image to AWS server. I sent it as an octet stream . I used modification 2.2. Note If we used the Octet stream, then there is no need to do it as a Multipart request.
@PUT Observable<Response<Void>> uploadMedia( @Header("Content-Type") String contentType, @Header("filetype") String FileType, @Url String urlPath, @Body RequestBody picture); private void UploadSignedPicture(String url, File filename, String mediaUrl) { mAmazonRestService.uploadMedia("application/octet-stream", "application/octet-stream", url, mAppUtils.requestBody(filename)). subscribeOn(mNewThread). observeOn(mMainThread). subscribe(authenticateResponse -> { if (this.isViewAttached()) { if (authenticateResponse.code() == ApiConstants.SUCCESS_CODE) else } }, throwable -> { if (isViewAttached()) getMvpView().showServerError(this, throwable); } }); }
Most importantly, how do you create a query:
@NonNull public RequestBody requestBody(File filename) { InputStream in = null; byte[] buf = new byte[0]; try { in = new FileInputStream(new File(filename.getPath())); buf = new byte[in.available()]; while (in.read(buf) != -1) ; } catch (IOException e) { e.printStackTrace(); } return RequestBody .create(MediaType.parse("application/octet-stream"), buf); }
Thank you for helping this.
Saveen
source share