Retrofit - Solicitação de várias partes: O parâmetro obrigatório MultipartFile 'file' não está presente
Estou tentando enviar arquivo no servidor usando o Retrofit2. Faço tudo de acordo com a documentação, mas sempre recebo 400 erros do servidor.
Eu tentei fazer assim:
RequestBody body =
RequestBody.create(MediaType.parse("image/png"), photo);
//..........
@Multipart
@POST(ADD_PHOTO)
Observable<HPSPhotoResponse>
addPhoto(@Part("file") RequestBody file);
... e assim:
MultipartBody.Part part = MultipartBody.Part.createFormData("file", "file", body);
//...........
@Multipart
@POST(ADD_PHOTO)
Observable<HPSPhotoResponse>
addPhoto(@Part("file") MultipartBody.Part files);
não importa. O resultado é sempre o mesmo "Solicitação de várias partes: O parâmetro obrigatório MultipartFile 'file' não está presente" - resposta do servidor.
Eu acho que o Spring no servidor não funciona bem, mas eu faço o código equivalente no Swift (iOS) e funciona! Aqui, o servidor vê essa parte do 'arquivo'.
Alamofire.upload(method, endpoint, headers: headers,
multipartFormData: { multipartFormData in
multipartFormData.appendBodyPart(fileURL: self.filePath!, name: "file")
}
Agora eu quero que funcione no Android com Retrofit. Mas eu até olho nos logs de solicitações de Retrofit e, de fato, não vejo nenhum texto de 'arquivo' nos logs.
O que há de errado nisso?