Я отправлял запрос на сервер с двумя параметрами, используя запрос залпа, и он работал нормально.Теперь требование изменилось, и мне нужно отправить хотя бы одно изображение или максимум 3 изображения на сервер вместе с двумя другими параметрами.Изображение должно быть отправлено в виде нескольких частей.У меня есть следующий код для получения изображения из галереи и сохранения пути к файлам в списке.
List<String> imagePathList = imageFilePaths;
List<MultipartBody.Part> partMap = new ArrayList<>();
for (int i = 0; i < imagePathList.size(); i++) {
Uri fileUri = Uri.parse(imagePathList.get(i));
RequestBody requestFile = RequestBody.create(
MediaType.parse(getMimeTypee(FileUtils.getFile(getContext(), fileUri).getAbsolutePath())),
FileUtils.getFile(getContext(), fileUri)
);
MultipartBody.Part body = MultipartBody.Part.createFormData("court_image[" + i + "]", FileUtils.getFile(getContext(), fileUri).getName(), requestFile);
partMap.add(body);
}
Где imageFilePaths
это ArrayList
.Сервер будет получать изображения типа court_image[0]
, court_image[1]
и т. Д., Зависит от того, сколько путей к изображениям у меня в ArrayList
.
Запрос залпа находится здесь:
RequestQueue queue = Volley.newRequestQueue(getContext());
StringRequest postRequest = new StringRequest(Request.Method.POST, url1,
new Response.Listener<String>() {
@Override
public void onResponse(String response) {
Toast.makeText(mBaseAppCompatActivity, "Success", Toast.LENGTH_SHORT).show();
}
},
new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
}
}
) {
@Override
public Map<String, String> getHeaders() throws AuthFailureError {
Map<String, String> params = new HashMap<String, String>();
String token = getToken();
params.put("Authorization", "Bearer " + token);
params.put("Content-Type", "multipart/form-data");
return params;
}
@Override
protected Map<String, String> getParams() {
Map<String, String> params = new HashMap<String, String>();
params.put("terms", "true");
params.put("phone", "phoneNo");
return params;
}
};
queue.add(postRequest);
Теперь, поскольку я новичок в многосоставной вещи, с помощью я могу получить изображение из галереи и храненияих путь в ArrayList
, но я не знаю, как передать данные из нескольких частей в этом запросе залпа.Пожалуйста, помогите.