0

In my app I have to send some photos and some datas to the server. Here is my flow: First I select the mekanik photo and in the response gives me a trans_id, and then in the same retrofit callback I have to send photo elektronik and it will send me the same trans_id in the response. In the elektronik callback I will send some other data together with the photos using the trans_id. Here what I have:

private void  UploadPhotoMekanik() {
        SharedPreferences editor = getSharedPreferences(MY_PREFERENCE, MODE_PRIVATE);
        String token = editor.getString("token", "");

        Intent intent = getIntent();
        machineid = Objects.requireNonNull(intent.getExtras()).getString("machineId");
        RequestBody fileImage = RequestBody.create(file, MediaType.parse("image/png"));
        MultipartBody.Part mImagePart = MultipartBody.Part.createFormData("mekanik", file.getName(), fileImage);
        PostRetrivers uploadPhotoMekanik = new PostRetrivers();
        Callback<Integer> callback = new Callback<Integer>() {
            @Override
            public void onResponse(Call<Integer> call, Response<Integer> response) {
                System.out.println();
                String id = response.body().toString();
                intent.putExtra("id", id);
                UploadPhotoElektronik();
            }

            @Override
            public void onFailure(Call<Integer> call, Throwable t) {
                Toast.makeText(PutWeeklyDatasActivity.this, t.getMessage(), Toast.LENGTH_SHORT).show();
            }
        };
        RequestBody mekID = RequestBody.create(machineid, MediaType.parse("text/plain"));

        uploadPhotoMekanik.sendPhotoMekanik(callback, mImagePart, mekID, token);
    }

    private void  UploadPhotoElektronik() {
        SharedPreferences editor = getSharedPreferences(MY_PREFERENCE, MODE_PRIVATE);
        String token = editor.getString("token", "");

        Intent i = getIntent();
        trans_id = Objects.requireNonNull(i.getExtras()).getString("id");
        RequestBody fileImage = RequestBody.create(file, MediaType.parse("image/png"));
        MultipartBody.Part mImageElek = MultipartBody.Part.createFormData("elektronik", file.getName(), fileImage);
        PostRetrivers uploadPhotoElektronik = new PostRetrivers();
        Callback<Integer> callback = new Callback<Integer>() {
            @Override
            public void onResponse(Call<Integer> call, Response<Integer> response) {
                System.out.println();
                SendRegData();
            }

            @Override
            public void onFailure(Call<Integer> call, Throwable t) {
                Toast.makeText(PutWeeklyDatasActivity.this, t.getMessage(), Toast.LENGTH_SHORT).show();
            }
        };
        RequestBody elekID  = RequestBody.create(machineid, MediaType.parse("application/json"));
        RequestBody transID = RequestBody.create(trans_id, MediaType.parse("application/json"));

        uploadPhotoElektronik.sendPhotoElektronik(callback, mImageElek, elekID, transID, token);
    }

    private void SendRegData() {
        SharedPreferences editor = getSharedPreferences(MY_PREFERENCE, MODE_PRIVATE);
        String token = editor.getString("token", "");

        //Intent i = getIntent();
        //i.putExtra("trans_id", trans_id);
        //trans_id = Objects.requireNonNull(i.getExtras()).getString("trans_id");

        PostRetrivers sendRegDatas = new PostRetrivers();
        RegData data = new RegData();
        Callback<RegData> callback = new Callback<RegData>() {
            @Override
            public void onResponse(Call<RegData> call, Response<RegData> response) {
                System.out.println();
            }

            @Override
            public void onFailure(Call<RegData> call, Throwable t) {
                Toast.makeText(PutWeeklyDatasActivity.this, t.getMessage(), Toast.LENGTH_SHORT).show();
            }
        };

        sendRegDatas.sendRegData(callback, trans_id, machineid, data, token);
    }

For the photo mekanik everything works fine, in the response came the trans_id; but for the elektronik case I have code = 500 Internal Server Error. In the postman everything works fine: enter image description here

Erald Developer
  • 359
  • 1
  • 6
  • 16

0 Answers0