Java HttpRequestHandler:发送文件作为响应
为了创建自己的基本web服务器,我正在使用httpCore。收到用户的特定请求后,必须启动文件传输操作。我正在用HttpRequestHandler处理请求。我的代码如下所示Java HttpRequestHandler:发送文件作为响应,java,webserver,apache-httpcomponents,Java,Webserver,Apache Httpcomponents,为了创建自己的基本web服务器,我正在使用httpCore。收到用户的特定请求后,必须启动文件传输操作。我正在用HttpRequestHandler处理请求。我的代码如下所示 private HttpRequestHandler mRequestHandler = new HttpRequestHandler() { @Override public void handle(HttpRequest request, HttpResponse response, HttpConte
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();
}
}
};
这是一个非常基本的响应,但是我希望将文件从服务器传输到客户机。如何发送文件作为响应?谢谢我自己想出来的。如果有人遇到同样的问题,下面是我如何让它工作的
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();
}
}
};
我自己想出来的。如果有人遇到同样的问题,下面是我如何让它工作的
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();
}
}
};