23 Mayıs 2018 Çarşamba

Netty Encoders - Java Nesnesini ByteBuf'a Çevirir

Giriş
Açıklaması şöyle.
To convert a String use a StringEncoder To convert a Serializable use a ObjectEncoder(warning, not compatible with normal Java object streams) To convert a byte[] use a ByteArrayEncoder
MessageToByteEncoder Sınıfı
MessageToByteEncoder Sınıfı yazısına  taşıdım

DefaultFullHttpRequest Sınıfı
constructor
Şöyle yaparız
HttpRequest req = new DefaultFullHttpRequest(HttpVersion.HTTP_1_1, HttpMethod.GET, "/");
HttpUtil.set100ContinueExpected(req, true);
EmbeddedChannel channel = ...;

channel.writeInbound(request);
retainedDuplicate metodu
Şöyle yaparız.
DefaultFullHttpRequest postRequest = ...;

Channel ch = ...;

ch.writeAndFlush(postRequest.retainedDuplicate());
DefaultFullHttpResponse Sınıfı
DefaultFullHttpResponse Sınıfı yazısına taşıdım.

DefaultHttpResponse Sınıfı
Giriş
Şu satırı dahil ederiz
import io.netty.handler.codec.http.DefaultHttpResponse;
constructor
Şöyle yaparız.
HttpResponse res = new DefaultHttpResponse(HttpVersion.HTTP_1_1, HttpResponseStatus.OK);
HttpResponse Arayüzü
Giriş
Şu satırı dahil ederiz.
import io.netty.handler.codec.http.HttpResponse;
headers metodu
Şöyle yaparız.
@Override
public void write(ChannelHandlerContext ctx, Object msg, ChannelPromise promise)
throws Exception {
  if (msg instanceof HttpResponse) {
    ((HttpResponse) msg).headers().set("some-header", "some-header-value");
  }

  super.write(ctx, msg, promise);
}

LengthFieldPrepender Sınıfı
LengthFieldPrepender yazısına taşıdım

ObjectEncoder Sınıfı
constructor
Şöyle yaparız.
pipeline.addLast(new ObjectEncoder());
StringEncoder Sınıfı
constructor
Şöyle yaparız.
ch.addLast(new StringEncoder());


Hiç yorum yok:

Yorum Gönder