0

独自の基本的な Web サーバーを作成するために httpCore を使用しています。ユーザーから特定の要求を受け取ると、ファイル転送操作を開始する必要があります。HttpRequestHandler でリクエストを処理しています。私のコードは次のようになります

private HttpRequestHandler mRequestHandler = new HttpRequestHandler()
{
    @Override
    public void handle(HttpRequest request, HttpResponse response, HttpContext httpContext) throws HttpException, IOException
    {
        try{
        HttpEntity entity=null;     
        String contentType="text/html";

        entity = new EntityTemplate(new ContentProducer()
                {
                    public void writeTo(final OutputStream outstream)throws IOException
                    {
                        OutputStreamWriter writer = new OutputStreamWriter(outstream, "UTF-8");
                        String resp = "Server is up and running";

                        writer.write(resp);
                        writer.flush();
                    }
                });

        ((EntityTemplate)entity).setContentType(contentType);

        response.setEntity(entity);
        }catch(Exception e)
        {
            e.printStackTrace();
        }

    }
};

これは非常に基本的な応答ですが、サーバーからクライアント マシンにファイルを転送しようとしています。応答としてファイルを送信するにはどうすればよいですか? ありがとう

4

1 に答える 1

4

私は自分でそれを理解しました。誰かが同じ問題に出くわした場合は、次の方法で問題を解決しました。

private HttpRequestHandler mRequestHandler = new HttpRequestHandler()
    {

        @Override
        public void handle(HttpRequest request, HttpResponse response, HttpContext context)
                throws HttpException, IOException 
            {
            try{
                File file = new File("/mnt/sdcard/Music/song.mp3");
                FileEntity body = new FileEntity(file, "audio/mpeg");
                response.setHeader("Content-Type", "application/force-download");
                response.setHeader("Content-Disposition","attachment; filename=song.mp3");
                response.setEntity(body);

            }catch(Exception e)
            {
                e.printStackTrace();
            }

            }

    };
于 2012-09-14T20:09:50.537 に答える