2016-04-07 13 views
0

Androidクライアントからマルチパートリクエストとして私のサーバーにビデオファイルを投稿しています。私は次の要求を受け取るためにサーバー側のメソッドを記述する必要があります。Java:Multipart POSTリクエストからビデオファイルを取得

  • 私は次のように私のコードは、サーバー側のフレームワーク

ようジャージーを使用しています:私はを受ける、SERVER側のコードを記述しますどのように

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

上記の要求? 答えはで十分です:)

答えて

1

問題は何ですか? いけないジャージーについて知っていますが、手順は次のようになります。

1)は、サーブレット(http://www.tutorialspoint.com/servlets/servlets-first-example.htm

2)サーブレットの入力パラメータの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には、doGetメソッドと同様にオーバーライドできるdoPostメソッドもあります。 [リンク](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

関連する問題