Мой код предназначен для отправки данных на сервер с использованием данных Multiform.
Код:
Map<String, RequestBody> params = new HashMap<>();
params.put("devicetype", toRequestBody(Constants.DEVICE_TYPE));
params.put("deviceid", toRequestBody(Functions.getDeviceId(AddDetailsActivity.this)));
params.put("appversion", toRequestBody(Constants.APP_VERSION));
params.put("apiversion", toRequestBody(Constants.API_VERSION));
params.put("timezone", toRequestBody(Functions.getTimeStamp()));
params.put("modeltype", toRequestBody(Functions.getDeviceModel()));
params.put("deviceos", toRequestBody(Build.VERSION.RELEASE));
params.put("userdeviceid", toRequestBody(MySharedPreferences.getCustomPreference(AddDetailsActivity.this, Constants.SHAREDPREFERENCE_USERDETAILS).getUserdeviceid()));
if (edit.equalsIgnoreCase("Y")) {
params.put("visitorid", toRequestBody(visitorid));
params.put("siteid", toRequestBody(siteid));
} else {
params.put("visitorid", toRequestBody("0"));
params.put("siteid", toRequestBody("0"));
}
for (int i = 0; i < Constants.images_path.size(); i++) {
String key = "images[" + i + "]";
try {
File compressedImages = new ImageZipper(AddDetailsActivity.this).compressToFile(new File(Constants.images_path.get(i)));
params.put("" + key + "\"; filename=\"" + key + ".png", getRequestFile(compressedImages));
} catch (IOException e) {
e.printStackTrace();
}
}
public static RequestBody toRequestBody(String value) {
RequestBody body = RequestBody.create(MediaType.parse("text/plain"), value);
return body;
}
Теперь я хочу добавить еще одно тело запроса к основному телу запроса. Но оно не принимает его.
Map<String, RequestBody> paStringRequestBodyMap = new HashMap<>();
if (addDetailsActivity.getVisitorSites() != null) {
paStringRequestBodyMap.put("id", Functions.toRequestBody(addDetailsActivity.getVisitorSites().getSiteid()));
paStringRequestBodyMap.put("visitorid", Functions.toRequestBody(addDetailsActivity.getVisitorSites().getVisitorid()));
} else {
paStringRequestBodyMap.put("visitorid", Functions.toRequestBody("0"));
paStringRequestBodyMap.put("id", Functions.toRequestBody("0"));
}
paStringRequestBodyMap.put("name", Functions.toRequestBody(editTextSitename.getText().toString().trim()));
Теперь я хочу добавить paStringRequestBodyMap к основному params телу запроса.Но это не очень хорошо.Не принимать запрос тела.Я пробовал это с paStringRequestBodyMap.toString () , но я думаю, что это не очень хороший способ.
Так что продвинутая помощь будет признательна!