2016-10-27 2 views
0

Я хочу выполнить почтовый запрос. Мои данные POST будут содержать несколько строковых параметров вместе с видеоданными. Как это сделать? Каков наилучший способ загрузки видео вместе с другими параметрами, такими как string, array, NSDictionary values?Как загрузить видео вместе с другими параметрами в формате JSON

ответ

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(); 
     }