Отправка пути к фотографии в виде строки на сервер-Android - PullRequest
0 голосов
/ 22 мая 2019

Я сделал метод для выбора изображения из галереи.

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

Метод onActivityResult:

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    if(resultCode == RESULT_OK && requestCode == IMAGE_PICK_CODE && data!=null){
        contactImage.setImageURI(data.getData());


        photoPath = data.getData().getPath();
        //photoPath is a type of string

    }
}

Метод добавления объекта Photo на сервер:

if(photoPath.equals("")){
                Toast.makeText(this, "Please select photo!", Toast.LENGTH_SHORT).show();
                return true;
            }

            Photo p = new Photo();
            p.setId(hashCode());
            p.setPath(photoPath);
            //when I send some random string instead of photoPath it works and response code is 200
            //but with this it goes into onResponse() method but response code is 400
            p.setContact(newContact.getId());



            Retrofit retrofit1 = new Retrofit.Builder()
                    .baseUrl(Url.BASE_URL)
                    .addConverterFactory(GsonConverterFactory.create())
                    .build();

            RestService restService1 = retrofit1.create(RestService.class);

            Call<Photo> call1 = restService1.createPhoto(p.getId(),p.getPath(),p.getContact());

            call1.enqueue(new Callback<Photo>() {
                @Override
                public void onResponse(Call<Photo> call, Response<Photo> response) {
                    if (!response.isSuccessful()){
                        Log.i("STATUS CODE PHOTO", Integer.toString(response.code()));
                        return;
                    }

                }

                @Override
                public void onFailure(Call<Photo> call, Throwable t) {
                    Log.i("STACK","TRACE photo");
                    t.printStackTrace();
                    return;
                }
            });

            Intent in = new Intent(this,ContactsActivity.class);
            startActivity(in);
            return true;

Где я ошибаюсь?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...