HttpResponseUtil.java
2.2 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
package com.zhonglai.socket.html.http.util;
import com.zhonglai.dto.Message;
import com.zhonglai.serialization.GsonConstructor;
import io.netty.buffer.ByteBuf;
import io.netty.buffer.Unpooled;
import io.netty.channel.ChannelFutureListener;
import io.netty.channel.ChannelHandlerContext;
import io.netty.handler.codec.http.DefaultFullHttpResponse;
import io.netty.handler.codec.http.FullHttpResponse;
import io.netty.handler.codec.http.HttpResponseStatus;
import io.netty.util.CharsetUtil;
import static io.netty.handler.codec.http.HttpHeaderNames.CONTENT_TYPE;
import static io.netty.handler.codec.http.HttpResponseStatus.OK;
import static io.netty.handler.codec.http.HttpVersion.HTTP_1_1;
/**
* 返回操作工具
*/
public class HttpResponseUtil {
/**
* 成功返回消息
* @param ctx
* @param txt
*/
public static void sendOkString(ChannelHandlerContext ctx, String txt)
{
FullHttpResponse response = newOKResponse();
StringBuilder buf = new StringBuilder();
buf.append(txt);
ByteBuf buffer = Unpooled.copiedBuffer(buf, CharsetUtil.UTF_8);
response.content().writeBytes(buffer);
buffer.release();
ctx.writeAndFlush(response).addListener(ChannelFutureListener.CLOSE);
}
/**
* 成功返回消息
* @param ctx
* @param message
*/
public static void sendOkMessage(ChannelHandlerContext ctx,Message message)
{
sendOkString(ctx, GsonConstructor.get().toJson(message));
}
/**
* 成功返回
* @return
*/
public static FullHttpResponse newOKResponse()
{
FullHttpResponse response = new DefaultFullHttpResponse(HTTP_1_1, OK);
response.headers().set(CONTENT_TYPE, "text/html; charset=UTF-8");
return response;
}
/**
* 错误返回
* @param status
* @return
*/
public static FullHttpResponse newERResponse(HttpResponseStatus status)
{
FullHttpResponse response = new DefaultFullHttpResponse(HTTP_1_1,
status, Unpooled.copiedBuffer("Failure: " + status.toString()
+ "\r\n", CharsetUtil.UTF_8));
response.headers().set(CONTENT_TYPE, "text/plain; charset=UTF-8");
return response;
}
}