我正在尝试通过认证令牌进行翻新和多部分上传,但是在运行时,我选择要上传的图像,它不会显示任何错误或在调试时显示。 请支持我的人,我真的很感激。
界面
@Multipart
@POST("api/acta_entrega_evidencia")
Call<RespuestaEvidenciaImagenDTO> subirImagen
(@Part("acta_entrega_id") RequestBody idActa,
@Part MultipartBody.Part file_content_type,
@Part("Authorization") RequestBody TOKEN);
活动
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == 100 && resultCode == RESULT_OK && data != null) {
//the image URI
Uri selectedImage = data.getData();
//llamando al método de carga de archivos después de elegir el archivo
uploadFile("acta_entrega_id",selectedImage ,"TOKEN");
}
}
private void uploadFile(String id, Uri fileUri, String token) {
//creating a file
File file = new File(getRealPathFromURI(fileUri));
//creating request body for file
RequestBody requestFile = RequestBody.create(MediaType.parse(getContentResolver().getType(fileUri)), file);
RequestBody idBody = RequestBody.create(MediaType.parse("acta_entrega_id"), id);
RequestBody toke = RequestBody.create(MediaType.parse( PreferenciaUsuario.TOKEN ), token );
MultipartBody.Part filee = MultipartBody.Part.createFormData( "file_content_type", file.getName(), requestFile );
//The gson builder
Gson gson = new GsonBuilder()
.setLenient()
.create();
//creating retrofit object
Retrofit retrofit = new Retrofit.Builder()
.baseUrl(ActasInterface.BASE_URL)
.addConverterFactory( GsonConverterFactory.create( gson))
.build();
//creating our api
ActasInterface api = retrofit.create(ActasInterface.class);
//crear una llamada y llamar al método de cargar imagen
Call<RespuestaEvidenciaImagenDTO> call = api.subirImagen( idBody, filee, toke );
//finalmente realizando la llamada
call.enqueue(new Callback<RespuestaEvidenciaImagenDTO>() {
@Override
public void onResponse(Call<RespuestaEvidenciaImagenDTO> call, Response<RespuestaEvidenciaImagenDTO> response) {
RespuestaEvidenciaImagenDTO serverResponse = response.body();
if (serverResponse != null) {
if (serverResponse.equals( serverResponse )) {
Toast.makeText(getApplicationContext(), serverResponse.getMessage(), Toast.LENGTH_SHORT).show();
} else {
Toast.makeText(getApplicationContext(), serverResponse.getMessage(), Toast.LENGTH_SHORT).show();
}
} else {
assert serverResponse != null;
Log.v( "Response", serverResponse.toString());
}
}
@Override
public void onFailure(Call<RespuestaEvidenciaImagenDTO> call, Throwable t) {
Toast.makeText(getApplicationContext(), t.getMessage(), Toast.LENGTH_LONG).show();
}
//esta es la parte que agrega el encabezado a la solicitud
});
}
RespuestaEvidenciaImagenDTO
public class RespuestaEvidenciaImagenDTO {
@SerializedName("errors")
@Expose
private String errors;
@SerializedName("message")
@Expose
private String message;
@SerializedName("status")
@Expose
private Integer status;
@SerializedName("data")
@Expose
private DataEvidenciaImagen data;
public String getErrors() {
return new String( errors );
}
public void setErrors(String errors) {
this.errors = errors;
}
public String getMessage() {
return message;
}
public void setMessage(String message) {
this.message = message;
}
public Integer getStatus() {
return status;
}
public void setStatus(Integer status) {
this.status = status;
}
public DataEvidenciaImagen getData() {
return data;
}
public void setData(DataEvidenciaImagen data) {
this.data = data;
}