2013-06-12 1 views
0

На основе netty 3.6 Я использую небольшой HTTP-сервер в своем рабочем приложении Java. К настоящему времени я успешно создал базовый макет HTTP-сервера, я могу отправлять различные текстовые файлы своим клиентам на основе браузера.Как отправить текстовые и двоичные данные с пользовательского HTTP-сервера netty в Java?

В моей Нетти трубопровода сервер завода создать новые трубопроводы канала следующим образом:

pipeline.addLast("decoder", new HttpRequestDecoder()); 
pipeline.addLast("aggregator", new HttpChunkAggregator(1048576)); 
pipeline.addLast("encoder", new HttpResponseEncoder()); 
pipeline.addLast("handler", new HttpServerHandler()); 

В моем HttpServerHandler классе я отправлять текстовые данные клиентов следующим образом:

HttpResponse response = new DefaultHttpResponse(HTTP_1_1, OK); 
response.setHeader(CONTENT_TYPE, contentType + "; charset=UTF-8"); 
response.setHeader(PRAGMA, "no-cache"); 
response.setContent(ChannelBuffers.copiedBuffer(responseText, CharsetUtil.UTF_8)); 

if(keepAlive) 
{ 
    response.setHeader(CONTENT_LENGTH, response.getContent().readableBytes()); 
    response.setHeader(CONNECTION, HttpHeaders.Values.KEEP_ALIVE); 
} 

ChannelFuture future = e.getChannel().write(response); 

Добра. Теперь я также хочу отправить двоичные данные (например, изображения) моим клиентам. Поскольку я не нашел онлайн-пример о том, как этого достичь, у меня есть два вопроса:

  1. Как изменить класс HttpServerHandler для отправки бинарного файла клиенту?

ответ

0

Я не думаю, что между контекстом или двоичным существует больше различий. Я думаю, что вам нужно сделать правильный тип контента. Затем браузер знает, как с этим справиться.

Если вы хотите отправить файл png в браузер, установите тип содержимого «image/png».