Как определить, что документ JSON был использован не полностью, при попытке загрузить изображения через модификацию - PullRequest
0 голосов
/ 20 июня 2019

Я написал запрос на отдых для загрузки изображения на сервер с помощью модернизации.Я думаю, что выполнил некоторые шаги здесь.

Но я не смог получить никакого положительного результата от этих шагов.

Я получаю исключение " com.google.gson.JsonIOException: документ JSON не использовался полностью " все время.

Вот мои шаги для этого процесса,

public void uploadBasicImage(String fileNamePath) {
        String[] split = fileNamePath.split("/");
        String filename = split[split.length-1];

        File path = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES);
        File file = new File(path, filename +".jpg");
        try {
            path.mkdirs();
            file.createNewFile();
        } catch (IOException e) {
            e.printStackTrace();
        }

        RequestBody requestBody = RequestBody.create(MediaType.parse("*/*"), file);
        MultipartBody.Part fileToUpload = MultipartBody.Part.createFormData("img", file.getName(), requestBody);

        if (ApiClient.getRefreshedToken(context) == null) {
            LogoutProcess.logout(context);
        } else {
            OkHttpClient.Builder httpClient = new OkHttpClient.Builder();
            httpClient.addInterceptor(new Interceptor() {
                @Override
                public Response intercept(Interceptor.Chain chain) throws IOException {
                    Request original = chain.request();

                    Request request = original.newBuilder()
                            .header("Content-Type", "application/json")
                            .header("X-Requested-With", "XMLHttpRequest")
                            .header("X-Authorization", "Bearer " + TokenIdentifier.getTOKEN())
                            .method(original.method(), original.body())
                            .build();

                    return chain.proceed(request);
                }
            });

            Gson gson = new GsonBuilder()
                    .setLenient()
                    .create();

            OkHttpClient client = httpClient.build();
            Retrofit retrofit = new Retrofit.Builder()
                    .baseUrl(Constant.BASE_URL)
                    .addConverterFactory(GsonConverterFactory.create(gson))
                    .client(client)
                    .build();

            ApiService apiService = retrofit.create(ApiService.class);
            Call<String> call = apiService.uploadImage(fileToUpload);
            call.enqueue(new Callback<String>() {
                @Override
                public void onResponse(Call<String> call, retrofit2.Response<String> response) {
                    if (response.body() != null && !response.body().isEmpty()) {
                        Snackbar.make(view, "Image uploaded", Snackbar.LENGTH_LONG).setAction("Action", null).show();
                    }
                }

                @Override
                public void onFailure(Call<String> call, Throwable t) {
                    t.printStackTrace();
                }
            });
        }

    }

Как я могу решить это исключение?

...