#java #android #oop #android-asynctask #okhttp
#java #Android #ооп #android-asynctask #okhttp
Вопрос:
В моем приложении code я написал метод, который отправляет ключ и значение с помощью FormBody.Builder
, но мне также нужно отправить изображение. Как я могу это сделать?
Я написал это
_formBuilder.add("id_user","1");
_formBuilder.add("name","David");
И затем я отправляю это значение в Constructor
из AsyncTask
, который получает параметры:
try {
Request _rbuilder = new Request.Builder()
.url(url)
.addHeader("Content-Type", "application/json; charset=utf-8")
.post(_parameters)
.build();
Response _res= _client.newCall(_rbuilder).execute();
return _res.body().string();
} catch (Exception ex) {
Log.i("Error task", ex.toString());
}
Ответ №1:
Вы можете использовать multipart/form-data
для загрузки на свой сервер. Сначала создайте MultipartBody
с помощью MultipartBody.Builder
MultipartBody.Builder multipartBodyBuilder = new MultipartBody.Builder();
multipartBodyBuilder.setType(MultipartBody.FORM);
multipartBodyBuilder.addFormDataPart("key", "value");
MediaType mediaType = MediaType.parse("image/png"); // or "image/jpeg" or any mime type you want
multipartBodyBuilder.addFormDataPart(
"fileKey",
"fileName",
RequestBody.create(mediaType, yourFile)
);
Затем используйте это как данные post в вашем запросе
Request _rbuilder = new Request.Builder()
.url(url)
.addHeader("Content-Type",
"application/json; charset=utf-8"
)
.post(multipartBodyBuilder.build())
.build();