我正在尝试使用refrofit和php上传文件,它可以正常工作,但是它会onFailure不知道为什么...如果我打印stacktrace,说.. com.google.gson.JsonIOException:JSON文档是没有完全消耗。
以此我上传文件...
RequestBody requestFile = RequestBody.create(MediaType.parse("multipart/form-data"), archivo);
MultipartBody.Part multipartBody = MultipartBody.Part.createFormData("fichero",archivo.getName(),requestFile);
call.enqueue(new Callback<Usuario>() {
@Override
public void onResponse(Call<Usuario> call, Response<Usuario> response) {
Toast.makeText(PrincipalActivity.this, response.body().getResponse(), Toast.LENGTH_SHORT).show();
}
@Override
public void onFailure(Call<Usuario> call, Throwable t) {
Toast.makeText(PrincipalActivity.this, "Error de Conexión", Toast.LENGTH_SHORT).show();
t.printStackTrace();
int lala=0;
}
});
public interface MetodosApi {
@Multipart
@POST("subir.php")
Call<Usuario> subirArchivo(@Part MultipartBody.Part file);
}
public static Retrofit obtieneRetrofit() {
if(retrofit==null) {
Gson gson = new GsonBuilder()
.setLenient()
.create();
OkHttpClient okHttpClient = new OkHttpClient();
retrofit= new Retrofit.Builder().baseUrl(url).client(okHttpClient).addConverterFactory(GsonConverterFactory.create(gson))
.build();
}
return retrofit;
}
不知道问题出在哪里...