Я хочу выполнить почтовый запрос. Мои данные POST будут содержать несколько строковых параметров вместе с видеоданными. Как это сделать? Каков наилучший способ загрузки видео вместе с другими параметрами, такими как string, array, NSDictionary values?Как загрузить видео вместе с другими параметрами в формате JSON
0
A
ответ
0
Для этого вы, как правило, используете сообщение запроса HTTP MultiPart Mime POST - сообщение может содержать видео и любые параметры, которые вы хотите включить.
С тегами Я предполагаю, что вы хотите сделать это в прошивкой - если так этот ответ дает полный пример: https://stackoverflow.com/a/24252378/334402
Если вы хотите сделать это в Android, следующий будет работать (см названия и добавляемые параметры описания):
//Create a new Multipart HTTP request to upload the video
HttpClient httpclient = new DefaultHttpClient();
HttpPost httppost = new HttpPost(serverURL);
//Create a Multipart entity and add the parts to it
try {
Log.d("VideoUploadTask doInBackground","Building the request for file: " + videoPath);
FileBody filebodyVideo = new FileBody(new File(videoPath));
StringBody title = new StringBody("Filename:" + videoPath);
StringBody description = new StringBody("Test Video");
MultipartEntity reqEntity = new MultipartEntity(HttpMultipartMode.BROWSER_COMPATIBLE);
reqEntity.addPart("videoFile", filebodyVideo);
reqEntity.addPart("title", title);
reqEntity.addPart("description", description);
httppost.setEntity(reqEntity);
} catch (UnsupportedEncodingException e1) {
//Log the error
Log.d("VideoUploadTask doInBackground","UnsupportedEncodingException error when setting StringBody for title or description");
e1.printStackTrace();
return -1;
}
//Send the request to the server
HttpResponse serverResponse = null;
try {
Log.d("VideoUploadTask doInBackground","Sending the Request");
serverResponse = httpclient.execute(httppost);
} catch (ClientProtocolException e) {
//Log the error
Log.d("VideoUploadTask doInBackground","ClientProtocolException");
e.printStackTrace();
} catch (IOException e) {
//Log the error
Log.d("VideoUploadTask doInBackground","IOException");
e.printStackTrace();
}