Привет, у меня проблема, когда я пытаюсь загрузить 2 файла на сервер.Первый файл - это изображение, а второй файл - это файл, содержащий JSON.
Проблема в том, что на сервере я получаю только первый параметр из JSON.Я пытался с почтальоном с теми же файлами, и там, кажется, работает.
Код Android:
@Multipart
@POST("api/register")
Call<ResponseBody> registerUser(@Part MultipartBody.Part image, @Part MultipartBody.Part data);
myService.registerUser(getImage1(), getJsonFile()).enqueue(new Callback<ResponseBody>() {
@Override
public void onResponse(Call<ResponseBody> call, Response<ResponseBody> response) {
if (response.isSuccessful()) {
//response ok
} else {
//response not ok
}
}
@Override
public void onFailure(Call<ResponseBody> call, Throwable t) {
//onFailure
}
});
}
private MultipartBody.Part getImage1() {
File file = new File(obj.getPicURL().toString());
RequestBody imageBody = RequestBody.create(MediaType.parse("multipart/form-data"), file);
return MultipartBody.Part.createFormData("image", file.getName(), imageBody);
}
private MultipartBody.Part getJsonFile() {
File jsonFile = new File(getApplicationContext().getFilesDir(), "toSend.JSON");
Gson gson = new GsonBuilder().create();
String json = gson.toJson(myObject);
writeJsonToFile(activity, jsonFile, json);
RequestBody jsonBody = RequestBody.create(MediaType.parse("multipart/form-data"), jsonFile);
return MultipartBody.Part.createFormData("data", jsonFile.getName(), jsonBody);
}
}
JSON файл:
{
"firstName": "First",
"lastName": "Tesr",
"username": "client",
"password": "123456aa",
"address": [{
"adressloc": "SomeAddress",
"city": "Bucharest"
}]
}
asdad