首页 > 解决方案 > 使用 POST 进行改造会失败,但仍会上传文件

问题描述

我正在尝试使用 refrofit 和 php 上传文件,它可以工作,但它会 onFailure 不知道为什么...如果我打印堆栈跟踪它说.. 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;

    }

不知道问题出在哪里...

标签: androidretrofit2

解决方案


推荐阅读