Issue
In my code application I wrote a method that sends a key and a value with FormBody.Builder
, but I need to send an image too. How can I do that?
I wrote this
_formBuilder.add("id_user","1");
_formBuilder.add("name","David");
And then I send that value in a Constructor
of an AsyncTask
that receives the parameters:
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());
}
Solution
You can use multipart/form-data
for upload to your server. First, create MultipartBody
using 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)
);
Then use it as post data in your request
Request _rbuilder = new Request.Builder()
.url(url)
.addHeader("Content-Type",
"application/json; charset=utf-8"
)
.post(multipartBodyBuilder.build())
.build();
Answered By - HendraWD
0 comments:
Post a Comment
Note: Only a member of this blog may post a comment.