Java:从多部分 POST 请求获取视频文件

标签 java android rest google-app-engine jersey

我正在将视频文件作为多部分请求从我的 Android 客户端发布到我的服务器。我需要编写一个服务器端方法来接收以下请求。

  • 我使用 Jersey 作为服务器端框架

我的代码如下:

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端代码来RECEIVE上述请求? 方法签名足以回答:)

最佳答案

问题到底是什么? 不知道 Jersey,但步骤是:

1) 编写一个 servlet ( http://www.tutorialspoint.com/servlets/servlets-first-example.htm )

2) Servlet 输入参数 HttpServletRequest 包含 getParts() 方法,您可以在其中找到您发布的视频...以及其他部分(如果有)

编辑

未经测试,但这对您有帮助吗?您应该能够像这样获取视频数据流。


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
        }
    }

详细示例请看spring是如何实现的: See spring way

关于Java:从多部分 POST 请求获取视频文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36486503/

相关文章:

java - 有没有办法在父类(super class)中定义泛型方法来引用继承类的类型?

java - 使用正则表达式删除 MS Word 链接

android - Appcelerator android.settings.ACTION_APPLICATION_DETAILS_SETTINGS 不工作

javascript - 使用 REST API(JSON、XML、HTML...)在请求之间传递消息

Spring MVC、REST 和 HATEOAS

java - 建议使用示例配置单元查询,并提供示例以使用配置单元0.14创建,更新和删除表

java - @MessageGateway 上设置的默认 header 未显示在消息中

android - Ubuntu 16/Cordova 6.4/Android : Could not resolve com. android.tools.build:gradle

android - 当元数据旋转不正确时如何获取视频旋转角度?

c#-4.0 - 如何使用 HttpClient 从 Web Api 调用 PUT 方法?