Я хочу отправить строку изображения base64 в URL-адрес с помощью залпа - PullRequest
0 голосов
/ 09 мая 2020

Я хочу отправить строку изображения base64 на сервер с помощью библиотеки volley android studio. Он работает в почтальоне и дает мне идеальный ответ, как показано на этом изображении , как показано на этом изображении

Я много раз пробовал в студии android, но он всегда показывает мне Ошибка кода 500 и я не могу получить результат, и никто мне не поможет. Просмотрите ответ почтальона на изображении, которое я прикрепил к этому сообщению. Я также прикрепил к нему свой код.

Это событие прослушивателя нажатия кнопки изображения:

   profile_image.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Intent photoPickerIntent = new Intent(Intent.ACTION_PICK);
                photoPickerIntent.setType("image/*");
                startActivityForResult(photoPickerIntent, 22);
            }
        });

Теперь начало действия для кода результата находится здесь:

@Override
public void onActivityResult(int requestCode, final int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);

     if (requestCode == 22 && resultCode == RESULT_OK && data != null){
        try {
            final Uri imageUri = data.getData();
            final InputStream imageStream = getContext().getContentResolver().openInputStream(imageUri);
            Bitmap selectedImage = BitmapFactory.decodeStream(imageStream);
            profile_image.setImageBitmap(selectedImage);
            ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
            selectedImage.compress(Bitmap.CompressFormat.JPEG, 50, byteArrayOutputStream);
            byte[] byteArray = byteArrayOutputStream .toByteArray();
            String encoded4 = Base64.encodeToString(byteArray, Base64.DEFAULT);

            String encoded22 = "data:image/jpeg;base64,"+encoded4;
            Toast.makeText(getContext(), encoded22, Toast.LENGTH_SHORT).show();

                final ProgressDialog progress = new ProgressDialog(getContext());
                progress.setTitle("Uploading Image");
                progress.setMessage("Loading...");
                progress.setCancelable(false);
                progress.show();

                RequestQueue queue = Volley.newRequestQueue(getContext());


                final JSONObject jsonObject = new JSONObject();

                    jsonObject.put("base64image", encoded22);

                    JsonObjectRequest jsonRequest = new JsonObjectRequest(Request.Method.POST, Utils.baseUrl +"/company/update-photo", jsonObject,
                            new Response.Listener<JSONObject>() {
                                @Override
                                public void onResponse(JSONObject response) {

                                    progress.dismiss();
                                    Toast.makeText(getContext(), response.toString(), Toast.LENGTH_SHORT).show();

                                }
                            }, new Response.ErrorListener() {
                        @Override
                        public void onErrorResponse(VolleyError error) {
                            progress.dismiss();
                            Toast.makeText(getContext(), error.toString(), Toast.LENGTH_SHORT).show();
                            error.printStackTrace();
                        }
                    }) {
                        @Override
                        public Map<String, String> getHeaders() {
                            Map<String, String> params = new HashMap<String, String>();
                            params.put("Content-Type", "application/json");
                            params.put("Authorization", bear + idCheck);
                            return params;
                        }
                    };
                  jsonRequest.setRetryPolicy(new DefaultRetryPolicy(
                    120000,
                    DefaultRetryPolicy.DEFAULT_MAX_RETRIES,
                    DefaultRetryPolicy.DEFAULT_BACKOFF_MULT));
                    queue.add(jsonRequest);

                } catch (FileNotFoundException e) {
            e.printStackTrace();
            Toast.makeText(getContext(), e.toString(), Toast.LENGTH_SHORT).show();
        } catch (JSONException e) {
            e.printStackTrace();
            Toast.makeText(getContext(), "Problem is here", Toast.LENGTH_SHORT).show();
        }

     }



}

Но он всегда показывает мне эту ошибку

«BasicNetwork.performRequest: неожиданный код ответа 500 для URL»

...