Я хочу отправить строку изображения 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»