Я написал запрос на отдых для загрузки изображения на сервер с помощью модернизации.Я думаю, что выполнил некоторые шаги здесь.
Но я не смог получить никакого положительного результата от этих шагов.
Я получаю исключение " 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();
}
});
}
}
Как я могу решить это исключение?