2016-04-07 2 views
0

Я ПОЧТИ видеофайла с моего Android-клиента на свой сервер в качестве многостраничного запроса. Мне нужно написать метод на стороне сервера, чтобы получить следующий запрос.Java: получить видеофайл из многостраничного запроса POST

  • Я использую Джерси, как на стороне сервера Framework

Мой код выглядит следующим образом:

private void send_video_to_server(String videoPath) throws ParseException, IOException { 

     HttpClient httpclient = new DefaultHttpClient(); 
     HttpPost httppost = new HttpPost("http://MY_SERVER_URL/videos/postvideo"); 

     FileBody filebodyVideo = new FileBody(new File(videoPath)); 
     StringBody title = new StringBody(titleBox.getText().toString()); 
     StringBody description = new StringBody(captionBox.getText().toString()); 

     MultipartEntity reqEntity = new MultipartEntity(); 
     reqEntity.addPart("videoFile", filebodyVideo); 
     reqEntity.addPart("title", title); 
     reqEntity.addPart("description", description); 
     httppost.setEntity(reqEntity); 

     // DEBUG 
     System.out.println("executing request " + httppost.getRequestLine()); 
     HttpResponse response = httpclient.execute(httppost); 
     HttpEntity resEntity = response.getEntity(); 

     // DEBUG 
     System.out.println(response.getStatusLine()); 
     if (resEntity != null) { 
      System.out.println(EntityUtils.toString(resEntity)); 
     } // end if 

     if (resEntity != null) { 
      resEntity.consumeContent(); 
     } // end if 

     httpclient.getConnectionManager().shutdown(); 
    } 

Как я пишу SERVER код на стороне ПОЛУЧИТЬ вышеупомянутый запрос? Подписи для ответа будет достаточно для ответа :)

ответ

1

В чем проблема? Dont знать о Джерси, но были бы шаги:

1) Написать сервлет (http://www.tutorialspoint.com/servlets/servlets-first-example.htm)

2) входной параметр Servlet HttpServletRequest содержит getParts метод(), где вы найдете свое размещенное видео ... наряду с другими частями, если какой-либо

EDIT

непроверенная, но это поможет вам? Вы должны иметь возможность получать поток видеоданных следующим образом.


protected void doPost(HttpServletRequest req, HttpServletResponse resp) 
      throws ServletException, IOException 
    { 
     Collection parts = req.getParts(); 
     for (Part part : parts) { 
      //... determine if its a file part from content disposition for example 
      InputStream is = part.getInputStream(); 
      //...work with your input stream 
     } 
    } 

Для подробного примера, посмотрим, как весна делает это: See spring way

+0

Не должно быть методом POST, который принимает в многочастного запросе? – Dinuka

+0

@ Earthling Да хорошо HttpServlet также имеет метод doPost, который вы можете переопределить аналогично методу doGet. См. [Link] (http://docs.oracle.com/javaee/7/api/javax/servlet/http/HttpServlet.html#doPost-javax.servlet.http.HttpServletRequest-javax.servlet.http.HttpServletResponse-) – taivo

+0

Спасибо, но я все еще смущен тем, как получить файл от запроса, когда он достигнет doPost? Как кодировать многостраничный запрос? – Dinuka

Смежные вопросы