在我的代码应用程序中,我写了一个方法,用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());
}
您可以使用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)
);
然后在请求中将其用作发布数据
Request _rbuilder = new Request.Builder()
.url(url)
.addHeader("Content-Type",
"application/json; charset=utf-8"
)
.post(multipartBodyBuilder.build())
.build();