Код клиента
Вот код, который я использую на стороне клиента для проверки файла и отправки его на сервер в виде составного запроса.
Код: Выделить всё
private boolean sendFileDataToServer(JSONObject sendInfoData) throws IOException, JSONException {
Log.d(TAG, "sendFileDataToServer called");
// Initialize OkHttpClient and add logging interceptor
HttpLoggingInterceptor loggingInterceptor = new HttpLoggingInterceptor();
loggingInterceptor.setLevel(HttpLoggingInterceptor.Level.BODY);
OkHttpClient client = new OkHttpClient.Builder()
.addInterceptor(loggingInterceptor)
.build();
Log.d(TAG, "OkHttpClient initialized with NetworkInterceptor and logging");
// Extract file path from JSON data
String filePath = sendInfoData.optString("audio");
Log.d(TAG, "Extracted file path: " + filePath);
File file = new File(filePath);
// Initialize request body
RequestBody requestBody;
// If file path is "empty" or file does not exist, switch to a standard form request
if ("empty".equals(filePath) || !file.exists() || !file.isFile() || file.length() Журнал HTTP-запросов: журнал HTTP-запросов на стороне клиента показывает, что метаданные файла включены в запрос.
Ошибка на стороне сервера: несмотря на это, журналы сервера показывают, что имя_файла и размер_файла пусты.
>Вопросы
Есть ли какая-либо возможная причина отсутствия метаданных при загрузке файла в виде составного запроса с помощью OkHttp?
Существуют ли дополнительные настройки или шаги для обеспечения полного получения метаданных на сервере?
/>Есть предложения по альтернативным подходам, позволяющим гарантировать, что метаданные не пропали?
Спасибо за любую помощь, которую вы можете оказать!
Что я пробовал< /h1>
Перед отправкой я проверил существование, читаемость и размер файла. Я ожидал, что метаданные файла (например, имя_файла, размер_файла) будут точно переданы на сервер.
Ожидаемый результат
Я ожидал, что сервер получит файл и все его метаданные правильно, без пропущенных полей, поэтому его можно успешно сохранить.
Фактический результат
Сервер получил файловый объект, но ключевые поля метаданных, такие как имя_файла, размер_файла и тип, отсутствовали, что привело к ошибке, указывающей, что эти значения не были включены в запрос.
Подробнее здесь: [url]https://stackoverflow.com/questions/79191148/android-file-metadata-missing-on-server-during-okhttp-multipart-upload[/url]