Извините за мой английский. У меня есть инструкция по загрузке видео на сервер. Это выглядит так:
POST https://dev.test.one/api/videos/create
params:
data: {
'players': '1,2,3'
'comment': 'Text' (> 5400)
'file_name': ' '
'file_full_name': ' '
'file_name_without_storage': ' '
'file_type': ' '
'file_disk': ' '
}
сервер разработчика в ближайшие дни будет недоступен ( В android я использую retrifilt для загрузки видео, но у меня есть ошибка. Я не могу понять, что это ошибка моя (на стороне Android) или ошибка сервера (на стороне сервера)
Ниже мой код (интерфейс):
@Multipart
@POST("/api/videos/create")
Observable<UploadVideoResponse> uploadVideoTest(@Header("Authorization") String userToken,
@PartMap Map<String, RequestBody> params,
@Part MultipartBody.Part video
);
Ниже я создаю данные:
File videoFile = getFile(pathVideo);
Map<String, RequestBody> map = new HashMap<>();
map.put("players", toRequestBody("101"));
map.put("comment", toRequestBody("test comment"));
map.put("file_name", toRequestBody(videoFile.getName()));
map.put("file_full_name", toRequestBody("dev.test.one/storage/tmp_user_101/" + videoFile.getName()));
map.put("file_name_without_storage", toRequestBody("dev.test.one/tmp_user_101/" + videoFile.getName()));
map.put("file_type", toRequestBody("video-mp4"));
map.put("file_disk", toRequestBody("s3"));
//create video data
RequestBody videoBody = RequestBody.create(MediaType.parse("video/*"), videoFile)
MultipartBody.Part video = MultipartBody.Part.createFormData("video", videoFile.getName(), videoBody)
С сервера у меня ошибка:
ErrorException: Invalid argument supplied for foreach() in file /var/www/vhosts/test.one/dev.test.one/app/Http/Controllers/VideoController.php on line 445
спросите у вас backend разработчик.
@NoumanCh Он в отпуске ((я думаю, может быть, мне нужно добавить мой map
к ключу data
в инструкции все патамы в ключе data
на сервере он разбирает как этот request[data][players]
Ошибка ничего не делает с android, я думаю, вам следует проверить код server / php.